LoginSignup
10
10

More than 5 years have passed since last update.

Google APIをCLIから利用する手順

Posted at
  • 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

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スクリプトの実行が実現可能というのを初めて知った。
これはいつか役に立ちそうです。

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10