即使我使用的是页面访问令牌而不是应用访问令牌,我仍然会收到OAuthException (#210) Subject must be a page.
错误。
我使用以下内容:
/{PAGE_ID}/tabs?app_id={APP_ID}&method=POST&access_token={PAGE_ACCESS_TOKEN}
。我的应用程序不是FBML ,而是Canvas / iFrame应用程序。我做错了什么?
我已经研究过网络,包括Stackoverflow和其他facebook论坛,但仍然没有答案。我的应用程序已启用OAuth。
另外,如果我在浏览器中复制并粘贴链接,它可以正常工作。如果我使用API,它就不会。
答案 0 :(得分:5)
我终于明白了。
但是,我没有使用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);
}
答案 1 :(得分:3)
对于再次收到此错误的人: 当我使用wininet向https://graph.facebook.com/发送https请求时,我收到了相同的错误消息......
我刚刚将动词从“POST”改为“GET”,然后效果很好:
//string strVerb = "POST";
string strVerb = "GET";
PS:变量“strVerb”用作windows函数HttpOpenRequest的第二个参数。