2017-01-23 7 views
0

Googleドライブと統合しています。私はこのようなログインボタンを置くのパスを推奨Googleに従っている:Googleログインボタンを使用して認証範囲を設定する方法

<div class="g-signin2" data-onsuccess="onSuccessFunc" data-theme="dark"></div> 

グラム-signin2のこのクラスは、特定のコールバックを有効にするが、私はどこでもドキュメントを見つけることができません。これを使用して100万のコード例があるので、検索は無意味です。誰かが文書を指摘できますか?

私の問題は、Googleドライブアクセスを有効にする必要があることです。これはgapi.initで行われますが、このログインボタンはinit自体を実行しています。私がそれをやろうとすると、initがすでに呼び出されているという文句を言います。 OK、Googleドライブを含めるには認証範囲を指定する必要があります。

私がプログラムを実行すると、ボタンを押すと、プロファイルへのアクセスを許可するよう要求されますが、ドライブは許可されません。

後で、私はgapi.auth.authorizeを呼び出しますが、これは単にユーザーにプロンプ​​トを表示せずに失敗します。私は他のパラメータ属性を持つg-signin2クラスの他の用途を見てきましたが、これには属性があると思われますが、私はドキュメントを見つけることができません。残念ながら、Googleのチュートリアルでは、フィールドとその意味に関するドキュメントは参照されません。

ログインボタンに許可スコープを表示してユーザーに提示する方法を考えていますか?

$scope.callAuthAuthorize = function() { 
    var authparam = { 
     'client_id': CLIENT_ID, 
     'scope': 'https://www.googleapis.com/auth/drive', 
     'immediate': true 
    }; 
    console.log("Now Requesting: ", authparam); 
    gapi.auth.authorize(authparam, $scope.handleAuthResult); 
} 
+0

希望[このドキュメント](https://developers.google.com/identity/sign-in/web/incremental-auth:immediate: true

最初の呼び出しauthorizeは、エラーに​​に切り替え)助け –

答えて

0

GoogleドライブAPIにはJavaScript Quickstart tutorialをお試しください。 これは、Googleドライブからファイルを読み込むアプリを作成するために使用したものです。

「ステップ1:ドライブAPIを有効にする」の手順に従って、Google Cloudアカウントで認証情報を有効にします。

gapi.auth.authorize(authparam, (auth_result)=> { 
    if (auth_result && !auth_result.error) 
     $scope.handleAuthResult(auth_result) 
    else { 
     authparam.immediate = false; 
     gapi.auth.authorize(authparam, (auth_result)=> { 
      if (auth_result && !auth_result.error) 
       $scope.handleAuthResult(auth_result) 
      else 
       console.error(auth_result) 
     }) 
    } 
}) 
+0

私はそれをやった。問題は、クライアントAPIが自動的に初期化され、その上にドキュメンテーションがないことです。そのサンプルのコードはすべて同じようにコード化されていますが、 'gapi.auth.authorize'の呼び出しは単に失敗します。 (そして非常に良いエラーメッセージを報告します)。だから私はそれが間違って何を正確に知っているしかし、正しいアクセス権のためにログインボタンを設定する方法を知ることはできません。 – AgilePro

+0

'{scope: 'https://www.googleapis.com/auth/drive'}'をあなたの 'client_id'と一緒に' gapi.auth.authorize'コールに渡すべきです。私はそれを2度呼びます。最初は 'immediate:true'で、次に失敗すると' immediate:false'で試みます。 – MattMS

+0

私は、承認のためのコードをトップポストに含めました。 2番目の呼び出しは、直接変数を除いてまったく同じですか? – AgilePro

関連する問題