最近,我听说,使用Facebook Open Graph API,如果用户喜欢某个页面,则可以发布到用户的新闻源。
我一直在尽力遵循该示例,并创建了一个虚拟页面。
据我了解,有必要执行以下操作:
- 创建必要的 Open Graph 标签,包括用于 Facebook 应用的标签
- 我已经使用开放图形调试器对其进行了测试
- 向页面添加"赞"按钮
- "赞"页面
-
获取访问令牌(用于发布消息)
curl -F grant_type=client_credentials -F client_id=MY_APP_ID -F client_secret=MY_APP_SECRET -F redirect_uri=https://graph.facebook.com/oauth/access_token https://graph.facebook.com/oauth/access_token
-
发布到源
curl -F 'access_token=ACCESS_TOKEN_FROM_STEP_4' -F 'message=Hello Likers' -F 'id=http://dl.dropbox.com/u/3618086/test.html' https://graph.facebook.com/feed
此时,消息应该发送给喜欢该页面的任何人。相反,我收到以下错误:
{
"error": {
"message": "(#100) http://dl.dropbox.com/u/3618086/test.html does not resolve to a valid user ID",
"type": "OAuthException",
"code":100
}
}
正是在这一点上,我很困惑。我已经阅读了以下相关问题:
- 如何向喜欢网页或对象的用户组发布内容?
- 您如何以编程方式发布到与"喜欢"页面关联的Facebook提要?
- Facebook 异常 #100:无法解析为有效的用户 ID
- 如何以编程方式发布到喜欢的网页的Facebook提要?
- 无法发布到脸书提要
并尝试了他们的建议,但没有成功。我错过了哪一步?
我可以提供进一步的细节;我只是不想让这个问题太长。
好吧,我想出了我的问题。为了他人的利益,我将我的解决方案包含在下面。
我上面列出的步骤确实是正确的,但有一些事情需要进一步解释,以避免我陷入的陷阱。
向在 Facebook 上赞过某件商品的用户发帖
第 1 步:创建脸书应用
- 您需要访问 Facebook 开发者页面并创建一个新应用程序
- 您的应用程序不需要命名空间或虚拟主机
- 填写您的申请详细信息
- 首先,您需要选择"使用Facebook登录的网站"。网站网址应与托管网站的位置相同。在我的示例中,我托管在保管箱共享文件夹中,因此使用了
http://dropbox.com
- 将应用程序域设置为站点 URL 的主机名。就我而言,这将
dropbox.com
允许Facebook使用*.dropbox.com
。我也可以专门做dl.dropbox.com
。
- 首先,您需要选择"使用Facebook登录的网站"。网站网址应与托管网站的位置相同。在我的示例中,我托管在保管箱共享文件夹中,因此使用了
步骤 2:创建虚拟页面
创建虚拟页面非常重要。我发现我的大部分问题都是由于设置错误的初始页面引起的。如果您创建了一个虚拟页面,则可以进行实验(或至少创建另一个虚拟页面),直到一切正常。
确保您的网页正确无误,尤其是打开的图表标签。正确是什么样子的?您可以查看我的虚拟页面,但我在下面包含了
<HEAD>
:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#"> <head> <title>Test</title> <link href="http://dl.dropbox.com/u/3618086/test2.html" rel="canonical" /> <meta property="fb:app_id" content="YOUR_APP_ID"> <meta property="og:type" content="product"> <meta property="og:title" content="PAGE TITLE" /> <meta property="og:description" content="PAGE DESCRIPTION" /> <meta property="og:image" content="http://www.stanford.edu/group/cardinalballet/Pictures/WebsitePics/portrait-placeholder.jpg"> <meta property="og:site_name" content="SITE_NAME"/> <meta property="og:url" content="http://dl.dropbox.com/u/3618086/test2.html"> </head>
- 其中的关键部分是
fb:app_id
(应该是您的Facebook应用程序ID)和og:type
。有多个types
,某些没有发布权限。有关更多信息,请访问开放图形 API 文档。我最初喜欢我的页面时是一篇文章,这导致了我遇到的许多问题。 - 您还可以使用打开图形调试器检查页面是否存在打开图形错误
- 其中的关键部分是
将"赞"按钮与Facebook SDK一起添加到页面。
第 3 步:赞页面
整个过程中最直接的部分。访问您的虚拟页面,然后按"赞"按钮。
步骤 4:发送消息
假设您已经正确完成了前面的步骤,最后一点也应该很简单。我在示例中使用curl
,但您应该能够使用任何类型的 POST 请求来获取它。
获取访问令牌。
curl -F grant_type=client_credentials -F client_id=MY_APP_ID -F client_secret=MY_APP_SECRET -F redirect_uri=https://graph.facebook.com/oauth/access_token https://graph.facebook.com/oauth/access_token
获取产品页面的 ID。
curl -g https://graph.facebook.com/?id=PAGE_URL
向所有喜欢您的产品页面的人发布消息。
curl -F 'access_token=ACCESS_TOKEN' -F 'message=MESSAGE' -F 'id=ID_FROM_PREVIOUS_ACTION' https://graph.facebook.com/feed
第 5 步:成功!
在这一点上,希望一切都很顺利。作为喜欢该页面的用户,请查看他们的新闻提要。您应该会看到一篇帖子,其中包含您页面上的标题、图片和说明。万岁。
。这就是我解决它的方式。希望这对其他人有价值。如果我错过了任何细节,我很乐意详细说明。