我正在尝试使用js sdk使用自定义故事和对象开发Facebook应用程序,但我遇到了一些问题。
我尝试实现的目的是创建一个类似的故事: “John在MyApp上踢足球 - 与迈克和凯特在城市体育场” 在文本下成为图像,标题和一些描述,然后点击链接。
我已经定义了我的动作“Play”和我的对象“Football”。
facebook给出的动作代码是:
FB.api(
'me/myapp:play',
'post',
{
football: "http://samples.ogp.me/xxxxxxxxxxxx"
},
function(response) {}
);
facebook提供的目标代码是:
FB.api(
'me/objects/myapp:football',
'post',
{
app_id: myappid,
type: "myapp:football",
url: "http://samples.ogp.me/xxxxxxxxxxx",
title: "Sample Football",
image: "https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png",
description: ""
},
function(response) {}
);
但我用它如下: HTML:
<a onclick="playFootball();" href="#">Play Football</a>
JS:
function playFootball() {
FB.api(
'me/testapp-radu:play',
'post',
{
tags: "xxxxxx, xxxxxx,",
place: "https://www.facebook.com/pages/MyPlace/xxxxxx?ref=br_rs",
football: "http://samples.ogp.me/xxxxxx",
image: "http://www.peter-ould.net/wp-content/uploads/soccer-ball.jpg",
privacy: {'value': 'SELF'}
},
function(response) {});
}
结果如下: http://img545.imageshack.us/img545/337/yj9o.jpg
如果有人能帮我解决这两个问题,我会非常感激,或者至少指出一些基本的教程(Facebook文档有时让我感到困惑)。
答案 0 :(得分:2)
我认为您使用足球作为指定故事的错误方式。您正在使用实例的名称而不是类。让我解释一下。
以下是我可以提出的两种情况:
您的应用是关于用户玩的游戏。因此,在这种情况下,您的对象变为游戏,足球将成为游戏的name
。所以现在你的故事如下:
“通过your_app与B和C一起踢足球”因为你将提供游戏对象的name
属性,facebook将为你选择正确的故事句子
您的应用是关于运动产品,在这种情况下,您的对象变为 sport_product 或产品,足球将成为运动产品的一个实例。但在这种情况下,播放的行为没有任何意义。所以我们说购买是一种行动。所以现在你的故事如下:
“A通过your_app用B和C买了足球”
另外,如果你想一想足球作为一个对象没有意义。足球的name
属性的价值是什么?“卡卡的足球” - 没有任何意义。考虑一般类对象而不是实例。 (想想Movie
而不是开始)。
希望这是有道理的!