2016-04-06 11 views
0

ログイン時にOAuth2を使用するApp Engine Javaプログラムを開発しています。つまり、ユーザーはアプリを使用する前に承認を得なければなりません。私は今、クライアント上で認証する必要なく(許可を再度要求する)ことなく、Googleピッカー機能を統合したいと考えています。アプリケーションエンジンからoauth2トークンを使用してGoogleピッカーを認証する方法

私が行ったことは、トークンをプロパティとして持つオブジェクト(loginInfoはjsonオブジェクト)を渡すことでした。

トークンはサーバー側で完全に正常に動作しますが、クライアントではUnAuthorized 401エラーが発生します。 EDIT サーバー側のスコープには、ピッカーのビューに必要なすべてのアクセス許可が含まれており、ピッカーAPIがドライブAPIと同様に有効になっていることを言及する必要があります。

私の質問は今、この状況を処理する最善の方法は何でしょうか?クライアントにauthTokenを投稿することは安全ですか?ユーザーが2回承認せずにピッカーを使用するように、このシナリオをどのように達成できますか?ドライブ、Picassa、その他のGoogleサービスにアップロードする場合、Pickerより優れたソリューションがありますか?

答えて

0

私はアプリをプログラミングするためにGWTを使用していたことを忘れていたので、まず謝りましょう。 GWT-Ajaxloaderライブラリを使用してエラーが発生しているようです。明らかにそれは昔ながらの方法でAPIに呼び出す必要があります。だから、私のためのソリューションは、としてこれ

<!-- The Following proves that picker works with oAuth2 --> 
    <script type="text/javascript"> 
     // Use the API Loader script to load google.picker and gapi.auth. 
     function onApiLoad() { 
     gapi.load('picker'); 
     } 
    </script> 
    <script type="text/javascript" src="https://apis.google.com/js/api.js?onload=onApiLoad"></script> 

これは私がピッカーオブジェクト、すでにロードされてsetDeveloperKey()メソッドに入れを使用することができました行われた後は、HTML への要求は、ハードコードにしました。今はすべてが肉汁です。もう1つ注意してください。 サーバー上でAccessKeyが期限切れになっていないことを確認してください。 Javaのアピ では、これはそれがCredential.getExpiresInSecondsを期限切れになるチェックすることによって行うことができます()私は個人的に自分自身に時間

if(cred.getExpiresInSeconds() <= 3600){ 
    cred.refreshToken();} 

を与え、これは私のために働いている修正です。

関連する問題