如何将上传的照片发布到用户的墙/ Feed?
我的应用程序生成一个包含用户名和一些信息的图像。它看起来像一个证书。我将此图片上传到用户的个人资料,但它没有显示在Feed上。所以朋友们没有看到。我试着用 -
发布它$post = $facebook->api('/me/feed', 'POST', array(...));
但我意识到,我无法发布Facebook托管的照片。但Facebook上有许多应用程序可生成图像,上传图像并将其发布到墙上。但是如何?
答案 0 :(得分:1)
您可以将Facebook托管的图片发布到用户的墙上。您需要做一个简单的墙贴,并包含object_attachment
参数,其中包含图片的ID。它记录在here附近,靠近表格底部。
您可以在this blogpost中找到更多详细信息。它还包含以下示例:
<?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>';
}
?>
答案 1 :(得分:0)
正如您所说,您无法将Facebook托管的图片发布回Facebook。在我看来,你有两个选择。
将图片下载到您的服务器,然后将其再次上传到用户Feed。
只需在用户Feed上发布指向该photo_object的链接即可。 Facebook的抓取工具将成功从该链接中提取相关数据,您仍然可以在帖子中预览该图像。
使用photo_id查询Graph API时 -
示例 - https://graph.facebook.com/10151812415573306(CocaCola's page上的公开照片),您可以获得有关该图像的一些信息。数据看起来像这样 -
{ "id": "10151812415573306", "from": { "name": "Coca-Cola", "category": "Food/beverages", "id": "40796308305" }, "picture": "https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash3/521913_10151812415573306_523748375_s.jpg", "source": "https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash3/521913_10151812415573306_523748375_n.jpg", "height": 332, "width": 500, ... "link": "https://www.facebook.com/photo.php?fbid=10151812415573306&set=a.99394368305.88399.40796308305&type=1", "icon": "https://s-static.ak.facebook.com/rsrc.php/v2/yz/r/StEh3RhPvjk.gif", "created_time": "2012-07-09T12:00:41+0000", ...
您需要在用户Feed上发布的参数是link
参数 -
https://www.facebook.com/photo.php?fbid=10151812415573306&set=a.99394368305.88399.40796308305&type=1
当您在用户Feed /墙上发布该网址时,该帖子将包含图片预览和照片本身链接(在Facebook内)。