好吧,我发现了我的问题。为了他人的利益,我在下面包含了我的解决方案。
我上面列出的步骤确实是正确的,但是有一些事情需要进一步解释以避免我陷入的陷阱。
发帖给在 Facebook 上喜欢过某个项目的人
第 1 步:创建 Facebook 应用
- 您需要访问Facebook Developers页面并创建一个新应用程序
- 填写您的应用程序的详细信息
- 首先,您需要选择“使用 Facebook 登录的网站”。站点 URL应与托管站点的位置相同。在我的示例中,我托管在我的保管箱共享文件夹中,所以我使用了
http://dropbox.com
- 将您的应用程序域设置为您的站点 URL 的主机名。就我而言,这
dropbox.com
将允许 Facebook 使用*.dropbox.com
. 我也可以专门做dl.dropbox.com
的。
第 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>
将点赞按钮与 Facebook SDK 一起添加到页面。
第三步:给页面点赞
整个过程中最直接的部分。访问您的虚拟页面,然后按赞按钮。
第 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 步:成功!
在这一点上,希望一切顺利。作为喜欢该页面的用户,请查看他们的新闻提要。您应该会看到包含您页面上的标题、图像和描述的帖子。万岁。
......这就是我解决它的方法。希望这对其他人有价值。如果我遗漏了任何细节,我很乐意详细说明。