我想分享两种解决方案的方法。希望它能解决您的问题。
解决方案一:
Facebook 现在将一些功能作为插件。在左侧选择产品并添加产品。然后选择 Facebook 登录。从那里开始,您将看到所有 Oauth 选项都显示出来。
OR,
选择产品并添加产品。然后选择 Facebook 登录。
然后添加http://本地主机:3000/ http://localhost:3000/到田间地头'Valid OAuth redirect URIs'
,然后一切正常。
解决方案2:
如果您在 Facebook 中创建应用程序时输入了错误的详细信息,通常会发生这种情况。或者您是否更改了现有应用程序的 URL?
您能再检查一下您的APP在该页面的设置吗?
https://developers.facebook.com/apps https://developers.facebook.com/apps
- 选择正确的应用程序并单击编辑按钮;
- 检查 URL 和路径是否正确输入并指向
您安装 Ultimate Facebook 插件的网站。
信用去往雷莱昂内尔 https://stackoverflow.com/users/6125193/lei-lionel
UPDATE1:
I think 您的访问令牌已过期。所以你需要扩展访问令牌。
为此,请访问此链接:
- 延长 Facebook 访问令牌(使其有效期为 60 天) http://appdevresources.blogspot.sg/2012/11/extend-facebook-access-token-make-it.html
- 访问令牌的到期和延期 https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension
资源链接:
- 为 Facebook 页面生成“永不过期”访问令牌 https://stackoverflow.com/questions/17426018/generate-never-expire-access-token-for-facebook-page
- Facebook Oauth 2.0 访问令牌会过期吗? https://stackoverflow.com/questions/2687770/do-facebook-oauth-2-0-access-tokens-expire
UPDATE2:
我只想问一件事是否可能是应用程序域错误
与访问令牌过期时间有关吗?
Ans:
从服务器端长期令牌生成长期用户令牌
Facebook 有一个高级选项,可以为以下应用程序获取长期访问令牌:
- 拥有自己的身份验证系统(使用用户名/密码
例子)
- 在他们的服务器上存储 Facebook 访问令牌供使用它的人使用
他们发送给不同的客户端(浏览器或本机移动应用程序)
- 从所有这些客户端进行 API 调用
如果您的应用程序是这样设置的,则应使用此处描述的流程从每个客户端获取访问令牌,以避免触发 Facebook 的自动垃圾邮件系统。最终结果是每个客户端都将拥有自己的长期访问令牌。
从较高层面来说,您可以通过以下方式从客户端获取长期令牌:
- 使用有效且有效的地址从您的服务器调用 Facebook 的服务器
当前的长期令牌来生成代码。 (这假设你已经
已经通过 Facebook 登录获得了长期令牌。如果令牌
您使用的无效或已过期,您必须获取新的
让使用您应用程序的人再次登录。)
- 将该代码安全地发送给客户端。
- 然后,客户端将代码交换为长期令牌。
- 客户端可以使用长期令牌来发布故事或查询
数据。
获取代码
使用长期用户访问令牌,调用以下端点:
https://graph.facebook.com/oauth/client_code?access_token=...&client_secret=...&redirect_uri=...&client_id=...
您需要输入:access_token, client_secret, redirect_uri and client_id.
响应将是:
响应将类似于:
{"code": "...."}
兑换访问令牌的代码
从 Facebook 的服务器检索到代码后,您需要通过安全通道将其发送给客户端。完成后,您需要从客户端向此端点发出请求:
https://graph.facebook.com/oauth/access_token?code=...&client_id=...&redirect_uri=...&machine_id= ...
该调用需要以下参数:
client_id - 是
代码 - 是
重定向_uri - 是
machine_id - 否
响应将如下所示:
{"access_token":"...", "expires_in":..., "machine_id":"..."}