我希望为我的instagram客户端刷新我的access_token,这样我的用户就不需要在每次访问令牌到期时都进行登录。有没有没有refresh_token(instagram api响应中不包含refresh_token)的方法?
您可以在这里查看instagram列出的步骤:https://www.instagram.com/developer/authentication/
这是instagram oauth api的响应对象:
{ “ access_token”:“ fb2e77d.47a0479900504cb3ab4a1f626d174d2d”, “用户”:{ “ id”:“ 1574083”, “ username”:“ snoopdogg”, “ full_name”:“史努比狗狗”, “ profile_picture”:“ ...” } }
我希望响应中有一个“ refresh_token”字段,以便稍后我们可以请求一个新的“ access_token”。
答案 0 :(得分:2)
首先,您需要使用常规访问令牌(仅有效一小时)来获取长期访问的令牌:
curl -i -X GET "https://graph.instagram.com/access_token
?grant_type=ig_exchange_token
&client_secret={instagram-app-secret}
&access_token={short-lived-access-token}"
然后,您可以使用自身的长期令牌来请求GET /access_token
端点,从而刷新长期令牌:
curl -i -X GET "https://graph.instagram.com/refresh_access_token
?grant_type=ig_refresh_token
&access_token={long-lived-access-token}"
刷新一个长期存在的令牌可使它再次有效60天。
您可以检查Instagram documentation以获得更多详细信息。
答案 1 :(得分:0)
在没有用户重新授权其帐户的情况下,无法刷新令牌。在您发布的链接上有关于此的通知:
即使我们的访问令牌未指定到期时间,您的应用也应处理用户撤消访问或Instagram在一段时间后使令牌过期的情况。如果令牌不再有效,则API响应将包含“ error_type = OAuthAccessTokenException”。在这种情况下,您将需要重新验证用户身份以获得新的有效令牌。 换句话说:请勿假定您的access_token永远有效。