我正在开发我的 Cordova 应用程序以使其更具病毒性。因此,当他们在游戏中存档新事物时,我想将 Facebook 和 Open Graph API 包含在游戏用户的新闻流中发布。我对整个 fb 和 open-graph 事物完全陌生,所以请帮助开始使用它。
我通过运行以下代码登录一个新用户:
$(login).on("click", function() {
FB.login(function() {
console.log("Default Login succeded");
console.log("Asking for write permissions");
FB.login(function(rsp) {
console.log("GOT WRITE PERMISSIONS");
log(rsp);
}, {
scope : 'publish_stream'
});
}, {scope:"email"});
});
我注册了一个buy
在 namespace 下调用的 Open graph 操作einszwo
。作为对象,我使用 default object
。
它尚未经过审核,但我正在使用开发人员 Facebook 帐户登录我的设备。
现在我想采取行动。为此,我使用以下代码:
var obj = {
title : "I visited Google",
url : "http://www.google.com"
};
function callback(response) {
console.log(JSON.stringify(response));
}
FB.api('me/einszwo:buy','POST',obj, callback);
不幸的是,通话失败,Facebook 回复如下:
{"error":{"type":"Exception",
"message":"The action you're trying to publish is invalid because it does not
specify any reference objects. At least one of the following properties
must be specified: object.","code":1611072}}
如果有人可以帮助我解决这个问题或提供我可以查找更多信息的一些信息,那将是非常棒的。
谢谢!
塞巴斯蒂安
编辑
将 url 粘贴为对象的解决方案有效,但我们希望使用您在Facebook 对象浏览器中定义的 Facebook 托管对象。该方法是能够发布用户的活动,如果有人点击该活动,我们希望他们被重定向到我们的应用程序信息页面。
我们不能为每个不同的对象提供一个页面。是否有可能使用 Facebook Javascript SDK 来使用 facebook 上托管的预定义对象?
我真的很想有这样的可能性来创建新对象
var o = {
"og:title" : "Test " + new Date(),
"og:url" : "http://facebook.com/appcenter/**APPNAMESPACE**",
"og:type" : "Object"
}
FB.api('/me/**APPNAMESPACE**:buy', 'POST', {
object : o
}, function(response) { console.log(JSON.stringify(response));});
这返回
{"message":"(#3503) \"{\"og:title\":\"Test Thu May 23 2013 12:19:45 GMT+0300 (EEST)\",\"og:url\":\"http://facebook.com/appcenter/einszwo\",\"og:type\":\"Object\"}\" is an invalid value for property \"object\" with type \"Reference\"","type":"OAuthException","code":3503}
或使用预定义 facebook 对象的 ID 的方法,例如:
FB.api('1234567890', 'POST', {
}, function(response) { console.log(JSON.stringify(response));});
谁能帮我?
谢谢!