你在谈论这样的事情吗?
![在此处输入图像描述](https://i.stack.imgur.com/dVBVi.png)
这可以通过开放图形对象和操作来实现。这是一个简短的(希望不是非常混乱)细分:
对象:在上图中,对象是“需要家的宠物”。对象是描述您碰巧正在共享的页面的文本,并在您正在共享的页面的标题标签中引用(稍后会详细介绍。)
行动:在上图中,指的是“...共享一个需要家的宠物...”中的“共享”。操作是您实际使用开放图形所做的任何事情。我见过一些网站“在某某上签名请愿书”或“在某某应用程序上玩某某词”。粗体字是动作。
动作和对象类型都可以在http://developers.facebook.com上定义。如果/当您有一个应用程序,并且您选择使用 Open Graph,它会鼓励您创建至少一种操作和一种对象类型。有许多预定义的(“读书”、“烹饪食谱”、“观看视频”等)。动作和对象可帮助您个性化发布到人们墙上的消息。
值得注意的是,如果您定义了自定义操作,Facebook 需要先批准它,然后他们才愿意让任何人使用它。通常这不是很困难......您只需单击操作旁边的“提交”按钮,它会告诉您是否/何时获得批准。
所以现在我们已经了解了基础知识,让我们谈谈如何在你的页面上实现这样的东西。我相信您很清楚,Open Graph 使用 FB.api() 而不是 FB.ui()。我将在这里使用 Javascript 示例。
FB.api(
'/me/app_namespace:share',
'post',
{
pet_who_needs_a_home: document.location.href,
image: pet_image // optional
},
function(response) {
// You can do something with the response here.
// If successful, Facebook returns the post id of the post it just made
// If it fails, check response.error
}
);
<head> 标签中还需要两个非常重要的标签。他们在这里:
<meta property="fb:app_id" content="YOUR_APP_ID" />
<meta property="og:type" content="APP_NAMESPACE:pet_who_needs_a_home" />
现在让我告诉你一切是什么。FB.api() 相当明显,所以我会跳到...
'/me/app_namespace:share',
/me 正在发布到你的墙上。app_namespace 是在 developers.facebook.com 上的应用详细信息部分中找到的命名空间。您可能需要定义一个命名空间(设置->基本->第二个文本框)。“:”打破了命名空间和动作。分享是行动(再次在developers.facebook.com 上定义)。
'post',
告诉 Facebook 我们要使用 POST 请求(而不是 GET 请求)。
{
pet_who_needs_a_home: document.location.href,
image: pet_image // optional
},
这是(显然)两个重要值的 javascript 数组。“pet_who_needs_a_home”是(实际上是我的......你应该用你的任何东西替换它)对象类型(仍然在developers.facebook.com上),正如你所记得的那样,它可以帮助我们定义使用的语言,如上图所示。图像是一个可选字段,您可以在其中定义将通过打开图形共享的图像。您可以查看大量其他可选字段……您知道。
function(response) {
......所有这些都是显而易见的,所以我将在那里省略无意义的细节。正如我在评论中提到的,如果成功,它会返回帖子的帖子 ID,或者返回可能是或可能不是描述性的错误(在 response.error 中找到)。
我希望元标签不言自明。YOUR_APP_ID 是……你猜对了……你的应用 ID。都是数字。app_namespace 再次是您的命名空间。pet_who_needs_a_home 是(我的)对象,应该用您碰巧使用的任何对象替换。
对不起,很长的帖子。希望那种清除了一点。