如何将上传的照片发布到用户的墙/提要?
我的应用程序会生成一个包含用户名和一些信息的图像。它看起来像一个证书。我将此图像上传到用户的个人资料,但它没有出现在提要中。所以朋友们看不到。我试图用 -
$post = $facebook->api('/me/feed', 'POST', array(...));
但我意识到,我不能发布 Facebook 托管的照片。但是 Facebook 上有许多应用程序可以生成图像、上传它们并将它们发布到墙上。但是怎么做?
如何将上传的照片发布到用户的墙/提要?
我的应用程序会生成一个包含用户名和一些信息的图像。它看起来像一个证书。我将此图像上传到用户的个人资料,但它没有出现在提要中。所以朋友们看不到。我试图用 -
$post = $facebook->api('/me/feed', 'POST', array(...));
但我意识到,我不能发布 Facebook 托管的照片。但是 Facebook 上有许多应用程序可以生成图像、上传它们并将它们发布到墙上。但是怎么做?
您可以将 facebook 托管的图片发布到用户的墙上。您需要做一个简单的墙贴,并包含object_attachment
参数,其中包含图片的 id。它记录在这里,靠近表格的底部。
您可以在这篇博文中找到更多详细信息。它还包含以下示例:
<?php
$app_id = "APP_ID";
$app_secret = "APP_SECRET";
$post_login_url = "POST_AUTH_REDIRECT_URL";
$photo_id = "PHOTO_ID";
$wall_message = "MESSAGE_FOR_POST";
$wall_link = "LINK_TO_POST";
$user_id = "USER_ID";
$code = $_REQUEST["code"];
// Obtain the access_token with publish_stream permission
if (!$code) {
$dialog_url= "http://www.facebook.com/dialog/oauth?"
. "client_id=" . $app_id
. "&redirect_uri=" . urlencode( $post_login_url)
. "&scope=publish_stream";
echo("<script>top.location.href='" . $dialog_url
. "'</script>");
} else {
$token_url="https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id
. "&redirect_uri=" . urlencode( $post_login_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);
$access_token = $params['access_token'];
// POST to Graph API feed endpoint, which is the user's Wall
$graph_url= "https://graph.facebook.com/" . $user_id . "/feed?"
. "message=" . urlencode($wall_message)
. "&link=" . urlencode($wall_link)
. "&object_attachment=" . $photo_id
. "&method=POST"
. "&access_token=" .$access_token;
echo '<html><body>';
echo file_get_contents($graph_url);
echo '</body></html>';
}
?>
正如您所说,您不能将 Facebook 托管的图像发布回 Facebook。在我看来,你有两个选择。
将图像下载到您的服务器并再次将其上传到用户提要。
只需在用户供稿上发布指向该 photo_object 的链接。Facebook 的爬虫将成功地从该链接中提取相关数据,您仍然可以预览帖子中的图像。
当您使用 photo_id 查询 Graph API -
示例 - https://graph.facebook.com/10151812415573306 (可口可乐页面上的公开照片)时,您会获得有关该图像的一些信息。数据看起来像这样 -
{ "id": "10151812415573306", “从”: { “名称”:“可口可乐”, “类别”:“食品/饮料”, “id”:“40796308305” }, "图片": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash3/521913_10151812415573306_523748375_s.jpg", “来源”:“https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash3/521913_10151812415573306_523748375_n.jpg”, “身高”:332, “宽度”:500, ... "链接": "https://www.facebook.com/photo.php?fbid=10151812415573306&set=a.99394368305.88399.40796308305&type=1", "图标": "https://s-static.ak.facebook.com/rsrc.php/v2/yz/r/StEh3RhPvjk.gif", "created_time": "2012-07-09T12:00:41+0000", ...
您需要在用户提要上发布的参数是link
参数 -
https://www.facebook.com/photo.php?fbid=10151812415573306&set=a.99394368305.88399.40796308305&type=1
当您在用户提要/墙上发布该 URL 时 - 该帖子将包含图像预览和照片本身的链接(在 Facebook 内)。