我正在做一些在offline_access到期之后的测试。我认为,由于我的应用程序与Facebook进行的所有交互都是通过我的服务器完成的,并且是由用户在几个应用程序端点(手机应用程序,网站,桌面应用程序)上的活动启动的,我可以使用应用程序访问令牌发布到墙上代表我的用户,假设即使我在授权期间请求的访问令牌过期,应用程序仍然是被授权的。这似乎是文档here暗示的内容
作为应用程序进行身份验证允许您获取访问令牌,该令牌允许您代表应用程序而不是用户向Facebook API发出请求。 [...] App访问令牌也可用于代表已向您的应用程序授予发布权限的用户向Facebook发布内容。
App Access令牌通常不会过期。生成后,它们无限期有效。
但是,我需要测试一下。所以我需要使一些令牌过期。我尝试使用您在开发者网站中创建的官方测试用户,这些用户只能与您应用的沙盒和其他用户进行交互,但他们的令牌似乎永久有效一小时。
所以我尝试使用我为此创建的真实facebook用户,并且更改我读过的密码应该使令牌过期。但事实并非如此。令牌仍然在调试器中报告有效,我仍然可以将它用于很多事情,包括发布到我的墙上。完全退出Facebook网站后,我甚至可以继续使用此令牌。
是什么给出的?如何获得过期的access_token以便我可以测试我的应用程序访问令牌?
编辑:我认为它会起作用。我创建了我的应用程序访问令牌,并使用CLIENT-SIDE流程获取仅持续2个小时的用户访问令牌,因此我实际上可以等待它过期。到期后,我使用Graph API资源管理器尝试发布状态更新,但未能告诉我令牌何时到期。然后,我使用成功的应用程序令牌尝试了相同的操作。
答案 0 :(得分:33)
但它在文档中就是说,就在您引用的最后一行之后:
App Access令牌通常不会过期。一旦生成,它们就是 无限期有效。 但是,如果您需要使您的应用无效 由于某种原因访问令牌,您可以重置您的App Secret 应用程序的设置。一旦您的App Secret被重置,您将需要 完成以下步骤以生成新的应用访问令牌。
因此,为了您的测试目的,请重置应用程序密钥。
哦,我完全误解了你 使用户令牌无效更容易,只需将me/permissions连接与DELETE请求一起使用即可。
这将删除登录用户的应用程序 您可以从资源管理器工具中尝试,只需在路径字段左侧的选择框中选择DELETE。
答案 1 :(得分:15)
这应该有效,请查看以下内容。
使您的令牌无效(也就是注销);对该端点进行HTTP GET调用;
https://api.facebook.com/restserver.php?method=auth.expireSession&format=json&access_token=<access_token>
P.S。我的回答是从2012年开始......从那时起,Facebook API已经发生了许多重大变化。阅读up2date Facebook开发人员文档
更可靠答案 2 :(得分:9)
喜欢@guleryuz回复,但是以实用的方式:
给出有效的access_token ${token}
:
$ curl -X GET "https://graph.facebook.com/v2.7/me/permissions?access_token=${token}"
{"data":[{"permission":"user_friends","status":"granted"},{"permission":"email","status":"granted"},{"permission":"manage_pages","status":"granted"},{"permission":"business_management","status":"granted"},{"permission":"pages_messaging","status":"granted"},{"permission":"pages_messaging_phone_number","status":"granted"},{"permission":"public_profile","status":"granted"}]}
撤销请求:
$ curl -X DELETE "https://graph.facebook.com/v2.7/me/permissions?access_token=${token}"
{"success":true}
验证撤销:
$ curl -X GET "https://graph.facebook.com/v2.7/me/permissions?access_token=${token}"
{"error":{"message":"Error validating access token: The session was invalidated explicitly using an API call.","type":"OAuthException","code":190,"error_subcode":466,"fbtrace_id":"E2UhrNzyyzZ"}}
答案 3 :(得分:5)
答案 4 :(得分:2)
用于查看权限
https://graph.facebook.com/v2.7/{userID}/permissions?access_token={acessToken}
对于删除权限,请在"method=delete"
&access_token=
https://graph.facebook.com/v2.7/{userID}/permissions?method=delete&access_token={acessToken}
答案 5 :(得分:2)
答案 6 :(得分:1)
您可以尝试通过更改您的Facebook密码来复制行为
答案 7 :(得分:-3)
https://www.facebook.com/connect/login_success.html#access_token=&#34;&的access_token#34; &安培; expires_in = 1.minutes 这里代替&#34; access_token&#34;输入您的访问令牌,不带引号,访问令牌将在1分钟后过期。