- GoogleDeveloperConsoleから認証情報を選択
- OAuth同意画面でサービス名を登録、その他は任意
- 認証情報タブから認証除法を追加>OAuth2.0クライアントIDを選択、アプリケーションの種類はその他
- Downloadリンクからjsonファイルを取得
- 以下URLのquickstart.phpの手順に従い定義されている情報を編集する https://developers.google.com/drive/web/quickstart/php?hl=ja
#変更箇所
define('APPLICATION_NAME', 'Drive API PHP Quickstart'); #任意の名前
define('CREDENTIALS_PATH', '~/.credentials/drive-php-quickstart.json'); #認証後のtokenファイルを格納する場所(任意)
define('CLIENT_SECRET_PATH', 'client_secret.json'); #ダウンロードしてきたjsonファイル
#利用したいサービス名が入る
define('SCOPES', implode(' ', array(
Google_Service_Drive::DRIVE_METADATA_READONLY)
));
- 書き込み完了したらコマンドラインから、
php quickstart.php
を実行 - 認証画面へのURLが表示されるのでブラウザで開く,承認後にでるIDをターミナル上で入力すると指定した場所にtokenファイルが生成されている
- GoogleDrive内のファイルリストが表示されればOK
Drive REST APIでFileの情報を取得する
$file = $service->files->get($fileId); //$servie is Google Service Object
リファレンス https://developers.google.com/drive/v2/reference/files/get
GoogleAppsScriptのRESTExecutionAPIを使ってSpreadsheetsをDB代わりに使う
経緯
どうも2015年11月時点ではもともとあったSheetsAPIが使えなくなっているようで、GoogleDevelopersのサイトではAppsScriptを使うといろいろできますよ的なことが記載されている。今年の夏くらいまでは利用できたようなのだが、、仕方ないので初AppsScriptを使って作ってみます。
Google Apps Script
- Apps ScriptでSheetsを編集するTutorials https://developers.google.com/apps-script/articles
- PHPでのApps Script連携 https://developers.google.com/apps-script/guides/rest/quickstart/php
- 上記記載のcomposerでインストールをするとApps Scriptのクラスが無いバージョンになるので、gitからcloneして来る https://github.com/google/google-api-php-client.git
- ここでつまづく、認証はされるがScriptが実行されない
Caught exception: {
"error": {
"code": 403,
"message": "The caller does not have permission",
"errors": [
{
"message": "The caller does not have permission",
"domain": "global",
"reason": "forbidden"
}
],
"status": "PERMISSION_DENIED"
}
}
- - ↑Scriptエディターの画面でリソース>DevelopersConsoleプロジェクト>プロジェクトを設定でプロジェクトを登録する
Google playgroundでの実行
参考にしたリンク http://qiita.com/soundTricker/items/1bcfc5c9e80d29a7ae4b
未解決の内容
コマンドラインから実行するofflineでのアクセスの場合セッションが途切れるためか、tokenが失効されてしまい毎回認証画面で認証する必要があり、コレに関しては解決案は見つからず。。
ちなみに
Google Apps Scriptにはcronのような機能があり、URL Fetch Service(UrlFetchApp)との合わせ技で自動phpスクリプトの実行が実現可能というのを初めて知った。
これはいつか役に立ちそうです。