OAuthException "(#210) 主题必须是一个页面。"
Posted
技术标签:
【中文标题】OAuthException "(#210) 主题必须是一个页面。"【英文标题】:OAuthException "(#210) Subject must be a page." 【发布时间】:2012-01-13 20:19:26 【问题描述】:即使我使用的是页面访问令牌而不是应用程序访问令牌,我也会不断收到 OAuthException (#210) Subject must be a page.
错误。
我正在使用以下内容:
-
来自 facebook 的最新 javascript SDK (//connect.facebook.net/en_US/all.js)
用户登录后使用 FB.api 方法调用
/PAGE_ID/tabs?app_id=APP_ID&method=POST&access_token=PAGE_ACCESS_TOKEN
。
我的应用程序不是 FBML,而是 Canvas / iFrame 应用程序。我做错了什么?
我研究了包括 *** 和其他 facebook 论坛在内的网络,但仍然没有答案。我的应用程序已启用 OAuth。
另外,如果我将链接复制并粘贴到浏览器中,它可以正常工作。如果我使用 API 进行操作,则不会。
【问题讨论】:
【参考方案1】:我终于搞定了。
但是,我没有使用 FB.api 来调用上面的链接,而是使用了 jQuery。
我使用了 jQuery "$.getJson(url)" 并且成功了。
它的工作原理如下。
如下构建链接。
“https://graph.facebook.com/PAGE_ID/tabs?app_id=APP_ID&method=POST&access_token=PAGE_ACCESS_TOKEN&callback=?”
如下调用 jQuery 方法。 "$.getJSON(pageUrl, OnCallBack);"其中“OnCallBack”是回调方法。您可以在回叫中做任何您需要的事情。就我而言,它类似于以下内容。
function OnCallBack(r, s)
var html = "";
if (s == "success" && !r.error)
for (p in r)
html += p + ": " + r[p] + "<br />";
else
html = r.error.message;
$("#dv").html(html);
【讨论】:
【参考方案2】:致再次遇到此错误的任何人: 当我使用 wininet 向 https://graph.facebook.com/ 发布 https 请求时,我收到了相同的错误消息......
我只是将动词从 "POST" 改为 "GET" ,然后效果很好:
//string strVerb = "POST";
string strVerb = "GET";
PS:变量“strVerb”用作windows函数HttpOpenRequest的第二个参数。
【讨论】:
以上是关于OAuthException "(#210) 主题必须是一个页面。"的主要内容,如果未能解决你的问题,请参考以下文章
Instagram oauth api 给出 "code": 400, "error_type": "OAuthException", &
验证测试用户 "error_type": "OAuthException", "code": 400, "error_messa
OAuthException using Socialite with facebook - "message": "必须使用活动访问令牌来查询有关当前用户的信息。&qu
OAuthException error_message:“无效范围:[]”我做错了啥?