我有一个应用程序,从我的Instagram帐户中提取数据。 我授权此应用程序一次,并获得访问令牌。但我很担心, 如果此令牌过期该怎么办?我应该每次授权应用程序 令牌到期了? 我可以从身份验证代码中接收另一个访问令牌吗? 如果不是,我该怎么做让我的应用程序始终从帐户中提取数据 没有我的参与? 谢谢。
答案 0 :(得分:29)
但是我很担心,如果这个令牌过期会怎么样?
AFAIK,Instagram的访问权限目前尚未到期。
请注意,我们不包含到期时间。我们的access_tokens没有明确的到期,但您的应用程序应该处理用户撤销访问权限或我们在一段时间后使令牌过期的情况。在这种情况下,您的响应的元数据将包含“error_type = OAuthAccessTokenError”。换句话说:不要假设你的access_token永远有效。
每次令牌到期时我是否应该授权应用程序?
目前,您不需要这样做,因为令牌不会过期。当令牌将来到期时,您将需要处理相应的警告或错误代码和消息。
我该怎么做让我的应用程序始终从帐户中提取数据 我的参与?
您可以尝试以下操作:
使用sharedpreference存储accesstoken。
首次尝试获取需要accessstoken(Authenticated requests)的数据时,首先检查sharedpreference是否存储了accesstoken。 如果是,那么你不需要登录,只需使用该accessoken。如果您没有优先使用accessstoken,请使用instagram凭据登录,获取accessstoken,然后以共享首选项共享,并将其用于后续请求。
您可以提供instagram注销选项,您只需要清除来自sharedprefernce的accessstoken。
希望这对你有所帮助。
答案 1 :(得分:8)
虽然没有详细记录,值得指出的是,检索帖子的提要不需要accessToken。
https://api.instagram.com/v1/users/{user-id}/media/recent/?access_token=ACCESS-TOKEN
也可以调用只传递你的client_id
https://api.instagram.com/v1/users/{user-id}/media/recent/?client_id=CLIENT_ID
但是在他们的文档中并未明确这一点。
答案 2 :(得分:1)
Instagram访问令牌在任意时间到期。 根据我的经验,在过去7个月中两次。
我没有找到任何方法在没有我参与的情况下重新生成令牌,唯一有效的解决方案是恕我直言,以避免官方API并使用如下内容: https://stackoverflow.com/a/33783840/
答案 3 :(得分:0)
在过去的3周中,我多次创建了新令牌,并且令牌在2天后失效,但是我还注意到有些令牌在3年之前创建的并未过期。另外,Instagram文档说,令牌可能会在不久的将来到期。
此刻存在黑客攻击,显示用户的最新帖子仅在URL后面加上`/?__ a = 1'' 诸如
这样的用户名之后https://www.instagram.com/vaseem.ishak/?__a=1
您将获得用户最后发布的带有图片文字的帖子,没有诸如此类的评论。只需稍微提取返回的JSON