我正在尝试在 IFRAME 中使用 Facebook 提要对话框,但在查看网页时,它显示:
API 错误代码:191 API 错误描述:指定的 URL 不属于应用程序 错误消息:redirect_uri 不属于应用程序。
我找到了类似的帖子,但经过数小时的研究仍然找不到解决方案。
设置 IFRAME src 的 Javascript 代码片段:
FB.Event.subscribe('auth.authResponseChange', function (response) {
if (response.status === 'connected') {
// the user is logged in and has authenticated your
// app, and response.authResponse supplies
// the user's ID, a valid access token, a signed
// request, and the time the access token
// and signed request each expire
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
// TODO: Handle the access token
if (accessToken) {
document.getElementById('fbIframe').src = 'https:// www.facebook.com/dialog/feed? display=iframe &app_id=OMITTED_APP_ID &access_token=accessToken &redirect_uri=http://asp.mydomain.com:8240/socialshare/ &show_error=true';
}
} else if (response.status === 'not_authorized') {
// the user is logged in to Facebook,
// but has not authenticated your app
} else {
// the user isn't logged in to Facebook.
}
});
对于我在 Facebook 上的应用程序设置:
[BASIC] App Domains: asp.mydomain.com 选择您的应用如何与 Facebook 集成:“使用 Facebook 登录的网站”(站点 URL:http ://asp.mydomain.com:8240/socialshare/ )
[PERMISSIONS] 用户和朋友权限:publish_actions 扩展权限:publish_stream
[高级] 身份验证:“网络”
[1] 请注意,在 IFRAME src 中,redirect_uri 的值是 http://asp.mydomain.com:8240/socialshare/ - 作为域的 asp.mydomain.com 和 asp.mydomain 之间的端口可能不同。 com:8240 作为 redirect_uri 是问题的原因吗?如果是这样,asp.mydomain.com:8240 不允许在 Facebook 设置中设置为应用程序域...
[2] 注意在localhost:59700/socialshare/本地开发网页时会出现同样的错误(使用Visual Studio 2010)
[3] 在 IFRAME 中成功加载提要对话框所需的最少字段到底是多少?
[4] 我可以使用此处记录的 facebook 提要对话框示例成功运行并发布消息:https ://developers.facebook.com/docs/reference/dialogs/feed/
[5] 对于上面的代码片段和这篇文章的正文,我特意在 URL 中添加了空格,以便我发布这个问题。
任何帮助,将不胜感激!
谢谢