Firebase&JavaScriptでGoogleAPIを叩く
GoogleAPIのドキュメントにあるJavaScriptを”とりあえず動かす”ためのメモです。
全く初めてのGoogle Tasks API リスト取得でcURLまで実施する方法を書いたので、さらにJSで動かすにはどうするかをこちらに書いていきます。
なので引き続き使うAPIはGoogleTASKです。
前回記事で動かしたcURLと同列に書かれているJAVASCRIPTのコードですが、意外とサクッと動かせません。
書かれているコードはこちら
<script src="https://apis.google.com/js/api.js"></script>
<script>
/**
* Sample JavaScript code for tasks.tasks.list
* See instructions for running APIs Explorer code samples locally:
* https://developers.google.com/explorer-help/guides/code_samples#javascript
*/
function authenticate() {
return gapi.auth2.getAuthInstance()
.signIn({scope: "https://www.googleapis.com/auth/tasks.readonly"})
.then(function() { console.log("Sign-in successful"); },
function(err) { console.error("Error signing in", err); });
}
function loadClient() {
gapi.client.setApiKey("YOUR_API_KEY");
return gapi.client.load("https://content.googleapis.com/discovery/v1/apis/tasks/v1/rest")
.then(function() { console.log("GAPI client loaded for API"); },
function(err) { console.error("Error loading GAPI client for API", err); });
}
// Make sure the client is loaded and sign-in is complete before calling this method.
function execute() {
return gapi.client.tasks.tasks.list({
"tasklist": "tasklistTASKLISTtasklist"
})
.then(function(response) {
// Handle the results here (response.result has the parsed body).
console.log("Response", response);
},
function(err) { console.error("Execute error", err); });
}
gapi.load("client:auth2", function() {
gapi.auth2.init({client_id: "YOUR_CLIENT_ID"});
});
</script>
<button onclick="authenticate().then(loadClient)">authorize and load</button>
<button onclick="execute()">execute</button>
こちらに、前回調べた
・TASKList_Id
・YOUR_API_KEY
・YOUR_CLIENT_ID
を入力して実行してみたのですが、うまくいきませんでした。
まず、ローカルに作ったindex.htmlで実行したのですが、
Uncaught uO
Uncaught TypeError: Cannot read property 'signIn' of null
というエラーが出ます。
どうやらGoogleのAPIはローカルのファイルからでは使えないという問題と、
前回の設定では「APIを呼びだす場所」がその他になっていたので、その点も問題です。
そのあたりを直し、firebaseにhtmlファイルをアップロードしてAPIを動かしてみたいと思います。
Firebase内にプロジェクトを作成する
FirebaseConsoleにアクセス
プロジェクトを追加を押下
このプロジェクトはGoogleAPIのプロジェクトと同様なので、あとでこちらのプロジェクトにAPIを有効にしていくことになります。
FirebaseでDeployする
ローカルでhtmlを動かしてはGoogleAPIが動かないので、
Firebaseを使います。
ターミナルにFirebaseをインストールします。
$ firebase -V
7.2.2
作成時は7.2.2
$ firebase login
ターミナルへのインストールができたら、Googleにログイン
$ firebase list
作成したプロジェクトのIDを調べる
$ firebase init --project={ID}
調べたIDでfirebaseのプロジェクトとフォルダを紐づける。
$ ls
firebase.json public
firebase側のfirebase.json
とpublic
フォルダが作成されているので、
publicフォルダ内にindex.htmlを作成し、ドキュメントのJSを貼り付ける。
$ firebase deploy
デプロイすると、URLが表示され、アクセスすることができるようになる。
しかしこの時点では、まだAPIの有効化ができていないので、
APIは正常には動かない。
次にAPIの設定をやっていく。
Google_TASK_APIを設定する。
Google API Consoleへアクセスする。
左上にある、「プロジェクトの選択」からfirebaseで作ったプロジェクトを選択しAPIとサービスの有効化
をクリックする。
次にAPIを選択する。ここではTASKAPIを使用する。
TasKs API
を有効にする。
次に認証情報
その際にAPIを使用するアプリケーションをJavaScriptにし、リダイレクトURIを先ほどのfirebaseDeploy時にアクセスしたURLにしておきます。
JavaScriptの設定を書き換える
サンプルのJSソースにIDやKEYを設定する必要がある。
・tasklist_Id
・API_KEY
・CLIENT_ID
前回記事を参考にこの3つの値を取得し設定。
その後firebaseで再度Deployしアクセスすると完成です。
結果はlogに出るのでブラウザのDebToolsでConnsoleを見て自分の登録したTASKが取得できていれば完成です。
Author And Source
この問題について(Firebase&JavaScriptでGoogleAPIを叩く), 我々は、より多くの情報をここで見つけました https://qiita.com/kuniatsu/items/15a31efa38b379ce7520著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .