2017-01-29 11 views
0

Googleのブログにgoogle apiとoauthを使っていくつかの投稿を追加して、いくつかの問題に遭遇しました。私は数日または数週間、尋ねる最高の質問を見つけることを試みたが、私は問題を切り離したと信じている。明らかに秘密鍵は1時間しか働かない。しかし、この行で1時間後:GoogleブロガーAPIと期限切れの秘密鍵。

 $service->blogs->getByUrl("theurlofmyblog.blogspot.com"); 

私はこのエラーを取得する:

Google_Service_Exception in REST.php line 118: 

{ 
"error": { 
"errors": [ 
{ 
"domain": "global", 
"reason": "authError", 
"message": "Invalid Credentials", 
"locationType": "header", 
"location": "Authorization" 
} 
], 
"code": 401, 
"message": "Invalid Credentials" 
} 
} 

フォーラムの専門家の一部は1つが、このアドレスhttps://developers.google.com/oauthplayground/に行くとrefereshトークンを取得しなければならないことを示唆しています。しかし、誰もそのトークンをどのように使用すべきかについて言及していません。私はそれをjsonファイルの中に入れますか?どれ経験

if(the key is expired) 
     use my referesh key and get me another key 

: - これはスェードコードすることになっている、してください笑っていない - このような何かがあるに違いありませんか?

+0

oauthplaygroundはGoogleのOauth2テスト環境で、認証フローをテストできます。 1時間以内にアクセストークンが期限切れになった場合は、「refresh_token」を持っている場合は新しいトークンを取得できます。最初の承認応答から取得できます。あなたが持っていない場合は、新しいアクセストークンを取得するために再び認証する必要があります。どのような許可フローを使用していますか? – FrAn

答えて

0

Google’s OAuth 2.0 documentationに記載されているように、認証フロー中にリフレッシュトークンを受け取る必要があります。そのトークンをどこかに保存して、それを使って必要に応じて新しいアクセストークンを取得する必要があります。

新しいアクセストークンのリフレッシュトークンを交換する正確な手順は、使用しているOAuthクライアントライブラリによって異なります。 Signet(GoogleのRuby用OAuthライブラリ)では、例えばfetch_access_tokenの一部として行われています。