0

Chrome拡張機能のためにreact-chrome-reduxスタックを使用しています。 Calendar APIからJavascript/Node.jsクイックスタートを試しましたが、動作しません。GoogleカレンダーAPI Chromeの拡張機能からのHTTPリクエスト

これで、Chrome ID APIを使用してoAuth2トークンを取得し、次にデータを取得するためのHTTPリクエストを作成しようとしています。

manifest.jsonを

"oauth2": { 
    "client_id": "CLIENT_ID.apps.googleusercontent.com", 
    "scopes": [ 
     "https://www.googleapis.com/auth/calendar", 
     "https://www.googleapis.com/auth/calendar.readonly" 
    ] 
    }, 
    "key": APP_KEY} 

HTTPリクエスト

chrome.identity.getAuthToken({ 'interactive': false }, function(token) { 
    var init = { 
    'method' : 'GET', 
    'async' : true, 
    'headers': { 
     'Authorization' : 'Bearer ' + token, 
     'Content-Type': 'application/json' 
    }, 
    'contentType': 'json' 
    }; 

    fetch('https://www.googleapis.com/calendar/v3/calendars/public/events', init) 
    .then((response) => response.json()) // Transform the data into json 
    .then(function(data) { 
     console.log(data); 
    }) 
}) 

私はのOAuth2トークンから長い文字列を取得するために管理しますが、私は、HTTPリクエストを作成しようとすると、 404ステータスエラーが表示されます。

私はStack Overflowで長い間探してきましたが、ほとんどの質問にはうまく答えられず、クロムエクステンションからAPIを使用する簡単な方法はないようです。

本当にありがとうございました!

+0

エクステンションをロードして実行するときに、[*あなたのエクステンションのさまざまな適切なコンソール](http://stackoverflow.com/a/38920982/3773011)に*正確に*表示されていますか? – Makyen

+0

**新しいタブページ**: 'リソースの読み込みに失敗しました:サーバが404()'のステータスで応答しました。返されたデータを表示すると、 'error'オブジェクトが表示されます。 **背景ページ**: エラーログはありません。 私の内線が新しいタブページを上書きしています。私は今、新しいタブページにコードを載せています。 – user6679132

答えて

0

@furydevoidは

は、デフォルトのカレンダーのキーワードは「主」とだから今、私はHTTPリクエストのためにこれをやっている

を「パブリック」ではありませんが判明し、それを考え出した:

const headers = new Headers({ 
     'Authorization' : 'Bearer ' + token, 
     'Content-Type': 'application/json' 
    }) 

    const queryParams = { headers }; 

    fetch('https://www.googleapis.com/calendar/v3/calendars/primary/events', queryParams) 
    .then((response) => response.json()) // Transform the data into json 
    .then(function(data) { 
     console.log(data); 
    }) 
    }) 
Chromeの拡張機能からGoogleカレンダーのAPIを使用しようとしている人のため

  1. Node.jsのquicks Chrome拡張機能で実際にスクリプトを実行するためのバックエンド(少なくとも私が試したもの)はないので、実際には機能しません。
  2. oAuthのダンスは、ユーザーをクローム://クロームので、彼らは、あなたに権限を与えてくれた後NEWTAB:

    1. 使用:// NEWTABは本当に

    にか何か

  3. リダイレクトする安全なサイトとして認識されていませんが、とにかくここに解決策がありますoAuth2トークンを取得するChromeのID api: https://developer.chrome.com/apps/app_identity
  4. 上記のように直接HTTPリクエストを作成します。

すべてベスト!そして私を助けてくれた皆様に感謝します!