Facebook Canvas App:带对象的请求

时间:2014-10-23 11:43:55

标签: javascript facebook canvas sdk request

我一直关注如何使用action_type:send

创建“请求”对话框的Facebook文档

Facebook Requests documentation

我想在这里复制这段代码:

Sending requests explicitly stating an action and object:

FB.ui({method: 'apprequests',
   message: 'Take this bomb to blast your way to victory!',
   action_type:'send',
   object_id: 'YOUR_OBJECT_ID'  // e.g. '191181717736427' 
}, function(response){

   console.log(response);
});

我创建了一个包含以下内容的Open Graph:

Action type: send
Object type: gift

但是,我不确定' OBJECT_ID'指的是。

我尝试发布一个Open Graph,然后使用我从POST获得的响应ID并将其插入OBJECT_ID但仍然出现错误

Object with ID '...' cannot be retrieved.

我还尝试插入Facebook页面ID并失败。

我已成功设法创建一个只包含消息的基本“请求”对话框,但当我尝试使用它发送对象/礼物时,我遇到了上述错误。

非常感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

由于我没有使用此功能,因此我不能100%确定,但我确实在我的应用中设置了操作和对象,以帮助您解决问题。一旦我创建了一个动作和一个对象,我还创建了一个将两者连接在一起的自定义故事(这是我能想出如何链接它们的唯一方法)。完成此操作后,我点击Get CodeAction Types下的Open Graph链接,显示了这一点:

Code for Action

https://graph.facebook.com/me/CANVAS_URL:send?
access_token=ACCESS_TOKEN&
method=POST&
bomb=http%3A%2F%2Fsamples.ogp.me%2FNUMBERSNUMBERSNUMBERS

链接末尾的数字可能是对象ID?我只是猜测,因为我不确定,但也许试一试。它将是%2F之后的数字,它是正斜杠的URL编码值。

我也注意到你可以改变平台;以上是针对HTTP而下面针对PHP:

$response = $facebook->api(
  'me/CANVAS_URL:send',
  'POST',
  array(
    'bomb' => "http://samples.ogp.me/NUMBERS"
  )
);
// handle the response

PHP示例更清楚地显示了数字,因为它没有URL编码。

答案 1 :(得分:0)

只是尝试回答object_id部分,从那里你可以从中获取或创建一个。

如果你阅读标题为“为请求创建对象”的App Request的facebook文档,他们在这里提到了如何从你的Facebook仪表板创建自定义对象类型,这些类型位于Open Graphs下。

他们还提到了使用Object Browser。在此处,如果您从列表中选择应用程序名称,对象所有者和类型,它将列出您可以用于在应用程序对话框中传递的所有对象ID。