0

2つのGoogle APIを同時に使用するにはどうすればよいですか? 私は両方のクライアントIDを持っていますが、私は両方のapisの許可を求めるスクリプトを得ることができないようです。Google APIで複数のクライアントIDを使用するにはどうすればよいですか?

同時に動作する2つのAPIを取得するには、VarクライアントIDなどを変更する必要がありますか?これは私が試したものです:

私はこの機能については変更する必要があります何も
var CLIENT_ID = ['client ID 1', 'Client ID 2'] ; 

var CLIENT_ID = 'client ID 1', 'Client ID 2' ; 

var CLIENT_ID = 'client ID 1, Client ID 2' ; 

function initClient() { 
gapi.client.init({ 
discoveryDocs: DISCOVERY_DOCS, 
clientId:CLIENT_ID, 
scope: SCOPES 

私は同じで、同時にドライブAPIとGmailのAPIを使用しようとしていますスクリプト、それはどのように可能ですか?

+0

2つのapisを使用する必要があるなどの詳細を入力してください。 – codemirror

+0

Gmail APIとドライブAPI – Pig

+0

@codemirrorとにかく両方のclientIDを使用していますか? – Pig

答えて

0

単一のクライアントIDを使用して複数のGoogle APIを呼び出すには、アプリで使用する必要なスコープを追加するだけです。

初期範囲:

auth2 = gapi.auth2.init({ 
    client_id: 'CLIENT_ID.apps.googleusercontent.com', 
    cookiepolicy: 'single_host_origin', /** Default value **/ 
    scope: 'profile' }); /** Base scope **/ 

要求の追加のスコープ:documentで述べたように

var options = new gapi.auth2.SigninOptionsBuilder(
     {'scope': 'email https://www.googleapis.com/auth/drive'}); 

googleUser = auth2.currentUser.get(); 
googleUser.grant(options).then(
    function(success){ 
     console.log(JSON.stringify({message: "success", value: success})); 
    }, 
    function(fail){ 
     alert(JSON.stringify({message: "fail", value: fail})); 
    }); 

、一般的にアクセスが必要な時に、インクリメンタルにスコープを要求することをお勧めします、正面よりもむしろ。たとえば、購入をサポートしたいアプリでは、ユーザーが[購入]ボタンを押すまでGoogleウォレットのアクセスをリクエストする必要はありません。 Incremental authorizationを参照してください。複数のGoogle APIにアクセスするには、アプリケーションの複数のclientIDを作成する必要はありません。

あなたの場合、最初のスコープは2つのうちのいずれかになり、ユーザーがAPIのメソッドにアクセスすると、追加のスコープを要求します。スコープの仕組みについてはOAuth 2.0 Playgroundをチェックしてください。

関連する問題