Google API Ruby Clientを使用して、ユーザーのカレンダーにアクセスします。
アクセスできるのは次のとおりです。
client_id: "xxxxx"
client_secret: "xxxxx"
access_type: "offline"
approval_type: ""
scope: "https://www.google.com/calendar/feeds/ https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/calendar"
callback_path: "/app/oauth_response"
provider :google_oauth2, GOOGLE_API['client_id'], GOOGLE_API['client_secret'],
{ access_type: GOOGLE_API['access_type'],
approval_prompt: GOOGLE_API['approval_prompt'],
scope: GOOGLE_API['scope'],
callback_path: GOOGLE_API['callback_path'],
path_prefix: GOOGLE_API['path_prefix']}
応答が返されると、更新トークン、アクセストークン、expired_atなどが含まれます。その後、アクセスコードを使用してAPIリクエストを行うことができます。しかし、そのアクセスコードの有効期限が切れると(1時間後)、新しいアクセストークンを取得するには、更新トークンを使用する必要があると思います。
これが私がかけている電話です:
HTTParty.get('https://www.google.com/calendar/feeds/default/owncalendars/full', :query => {:alt => "jsonc", :access_token => access_token})
これは、トークンの有効期限が切れたことを示しています。だから私は新しいものを手に入れようとします。しかし、私がそれをやろうとすると、私はこれを手に入れます:
@client.authorization.fetch_access_token!
ArgumentError Exception: Missing authorization code.
@clientオブジェクトの@code=nilにそれが表示されます。それを設定する必要があると思いますが、最初のリクエストから「code」プロパティが返されません。
そのコードを取得するにはどうすればよいですか、またはそれが必要ない場合は、何が間違っていますか?ありがとう!