2013-11-24 22 views
6

GoogleドライブAPIをノードウェブキットで動作させようとしています。ノードウェブキットとgoogleドライブAPI

authメッセージが送信されると、File://の拒否されたOriginで送信されます。誰もがGoogleは、ノードのWebKitから車のauthする方法を知っている -

https://accounts.google.com/o/oauth2/auth 
?client_id=<some value> 
&scope=https://www.googleapis.com/auth/drive.appdata 
https://www.googleapis.com/auth/drive.file 
https://www.googleapis.com/auth/drive 
&immediate=true 
&proxy=oauth2relay1232990068 
&redirect_uri=postmessage 
&origin=file:// 
&response_type=token 
&state=1938150804|0.1319366391 
&authuser=0 

わからないが、なぜそれがGAPIからそのように送信されますか?

+0

私の推測では、GAPIをノードと書かれていなかったということですユースケースとして。私の短い提案はそれを使用しないことです。 URLの外観を知っているので、直接呼び出してJSONレスポンスを解析するだけです。 – pinoyyid

+0

私はあなたのアドバイスを受けた.RESTデスクトップソリューションを実装するのは簡単だった。 – ed4becky

答えて

4

私はoAuthのAPIをバイパスして、それを自分で実行することに決めました。

ユーザーは認証コードをコピーしてアプリに貼り付ける必要があります。一番の選択肢ではありませんが、一度だけ行う必要があります。

興味のある人のためのコードを共有:

ユーザーは、Googleがドライブを選択した場合:

  window.open('https://accounts.google.com/o/oauth2/auth?' 
        + 'client_id=<some value>' 
        + '&scope=<space delimited list of permissions>' 
        + '&redirect_uri=urn:ietf:wg:oauth:2.0:oob' 
        + '&response_type=code'); 

これは、彼らが許可し、それらに認証コードを提示してみましょうポップアップを生成します。

認証コードが私のアプリに貼り付けると、私はDBに保存し、私は、DBに保存するアクセスコードを、取得を続行:

  $.ajax({ 
       url: "https://accounts.google.com/o/oauth2/token", 
       type: 'post', 
       data: { 
        code: <authCode>, 
        client_id: CLIENT_ID, 
        client_secret: CLIENT_SECRET, 
        redirect_uri: 'urn:ietf:wg:oauth:2.0:oob', 
        grant_type: 'authorization_code' 
       } 
      }).error(function(data) { 
       myObj.isAuth = false; 
       if (cbFail) { 
        cbFail(data); 
       } 
      }).success(function(data) { 
       myObj.isAuth = true; 
       <persist entire response> 
       if (cbSuccess) { 
        cbSuccess(); 
       } 
      }); 
関連する問題