我没有使用Javascript SDK,因为那是客户端,而我正在进行服务器端调用。
我想制作一个网页帖子,以便我可以制作广告素材。我可以在Graph API Explorer工具中完美地完成调用,但是我无法从Javascript进行相同的调用(具有在Graph Explorer中继续工作的相同的长期访问令牌)。这是我的代码:
tok = <valid and never expiring user token>;
var pg_tok = <valid and never expiring page token>;
var act_id = <account_id>;
var pg_id = <page_id>;
var call_to_action = 'INSTALL_MOBILE_APP';
var fb_app_url = 'https://itunes.apple.com/us/app/id284882215';
var msg = 'Test creative, ya see';
var pic_url = 'https://s3.amazonaws.com/<path_to_my_image>';
var ROOT = 'https://graph.facebook.com/';
var pagepost_endpoint = ROOT+pg_id+'/feed';
console.log(pagepost_endpoint);
var pagepost_params = {
access_token: pg_tok,
call_to_action: {
type: call_to_action,
value: {link: fb_app_url}
},
message: msg,
picture: pic_url,
published: false
};
console.log(pagepost_params);
var pagepost_res = HTTP.post(pagepost_endpoint, {params: pagepost_params});
console.log(pagepost_res);
我玩过params与数据有关,其中pagepost_params在HTTP.post中出现错误(即Meteor的HTTP btw)。
- 在params
中输入所有内容会产生错误:{"error":{"type":"Exception","message":"No Call To Action Type was parseable. Please refer to the call to action api documentation","code":1373054,"is_transient":false}}
。
- 在data
中输入所有内容会产生错误:{"error":{"message":"(#200) This API call requires a valid app_id.","type":"OAuthException","code":200}}
。
- 在access_token
中放置params
,data
中的其他所有内容都会显示错误:{"error":{"message":"Invalid parameter","type":"FacebookApiException","code":100,"error_subcode":1349125}}
。
如果我将HTTP.post更改为HTTP.get,并将access_token
放入params
并且不包含其他参数(在params
或{中},则为每个人提供更多线索{1}}),调用成功,我看到我在此页面上通过图形资源管理器(仅有data
的帖子)发表过去的帖子,所以访问令牌和端点确实有用,只是有些东西是关于POST而不是GET-ing以及我正在使用的具体参数是错误的。
答案 0 :(得分:0)
您是否尝试过 / photos 而不是 / feed ?错误子代码与此处Posting to facebook wall using graph api
中提到的相同希望这有帮助
答案 1 :(得分:0)
原来是Meteor的HTTP问题。它不能很好地处理嵌套的JSON,我们将为此提交拉取请求。但是对于那些看到这一点的人来说,重要的是拿出call_to_action可能不是一个有效的JSON对象,即使它是,它也可能没有按预期进行字符串化/解析。我的修复是使用request.post而不是HTTP.post。 (然后使用params
代替data
或form
。查找节点的请求https://github.com/mikeal/request)