用户通过重定向到的网址在我的网站上登录Facebook
https://graph.facebook.com/oauth/authorize?client_id=116908145XXXXXX&display=page&scope=offline_access&redirect_uri=http://localhost:8000/account/services/?service=facebookcallback
在回调页面上,我使用我收到的代码发出请求以获取访问令牌,在此URL
https://graph.facebook.com/oauth/access_token?code=2.3m2hLauQJpWTGFExUK6O3w__.3600.1290081600-100001796185871%7.....&format=json&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Faccount%2Fservices%2F%3Fservice%3Dfacebookcallback&client_id=116908145040447&scope=offline_access&client_secret=...
我得到的回应就是这个
access_token=116908145XXXXXX|2.3m2hLauQJpWTGFExUK6O3w__.3600.1290081600-100001796185871|S3MG...&expires=3912
从令牌中可以看出它有一个到期日期。
令牌在请求后几个小时到期。如果我使用scope = offline_access?
发出请求,我是否应该收到没有到期日期的访问令牌答案 0 :(得分:2)
旧帖子,但信息可能对其他人有用。
Facebook现在默认禁用offline_access。如果您仍想使用它,则必须启用应用程序迁移。
随着迁移的关闭,令牌将“短暂存在”并持续一两个小时。您可以通过向
发出请求,获得持续约60天的扩展令牌https://graph.facebook.com/oauth/access_token?
client_id=APP_ID&
client_secret=APP_SECRET&
grant_type=fb_exchange_token&
fb_exchange_token=EXISTING_ACCESS_TOKEN
有关详细信息,请参阅this page
答案 1 :(得分:1)
但是要直接回答你的问题,是的,你应该使用“scope = offline_access”获得一个长期存在的access_token。此外,请检查对话框是否显示“随时访问我的数据”