从Facebook API标记状态更新中的朋友

时间:2010-12-01 17:51:43

标签: php facebook facebook-graph-api

我最近遇到this blog post,表示可以通过Facebook应用程序(来自API)标记状态更新中的某人:

然而,它似乎对我不起作用。

它以三种不同的方式尝试了它:

$post = $facebook->api('/me/feed', 'post', array(
    'access_token' => $session['access_token'],
    'message' => 'Hello @[562372646:Lionel Cordier], how are you?'
));

$access_token = $session['access_token'];
$message = 'Hello @[562372646:Lionel Cordier], how are you?';
$curl_post = 'access_token='.$access_token.'&message='.$message;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/me/feed');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curl_post);
$data = curl_exec($ch);
curl_close($ch);

$access_token = $session['access_token'];
$message = 'Hello @[562372646:Lionel Cordier], how are you?';
$curl_post = 'access_token='.$access_token.'&status='.$message;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.facebook.com/method/users.setStatus');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curl_post);
$data = curl_exec($ch);
curl_close($ch);

但没有任何作用。我得到的结果是“ Hello @ [562372646:Lionel Cordier],你好吗?”在我的墙上。

但如果我输入“ Hello @ [562372646:Lionel Cordier],你好吗?”直接在Facebook上,它可以正常工作。

我做错了什么?

5 个答案:

答案 0 :(得分:7)

上周我一直在努力解决这个问题并发现以下错误报告,建议(鉴于当前的ASSIGNED状态)它还无法完成:(

http://developers.facebook.com/bugs/395975667115722/

答案 1 :(得分:6)

是的,可以采用以下格式:@ [{user_id}:1:{name}]

试用本教程:http://digitizor.com/2011/01/24/tag-user-facebook-graph/

答案 2 :(得分:6)

https://apps.facebook.com/profile_ranking正在上传图片,您可以在图片中标记不在状态消息中的人。

标记图片中的人

curl -F'access_token = xxxxxx'-F'url = https://appharbor.com/assets/images/stackoverflow-logo.png' -F'消息= @ [100000891609024:Silient Killerz]' https://graph.facebook.com/me/photos

Graph Api Explorer 中 拨打电话,将网址设置为https://graph.facebook.com/me/photos
添加包含关键信息和值@ [100000891609024:Silient Killerz]的字段(将其替换为您的朋友ID和姓名)
添加另一个包含密钥网址和值https://appharbor.com/assets/images/stackoverflow-logo.png的字段 点击提交

答案 3 :(得分:5)

下面的代码对我有用,试试如果你不想在帖子中显示位置然后使用我提到的相同代码 $ params ['place'] ='155021662189'; 该代码赢了不要在Post中显示这个地方

             $params=array();       

             $params['message'] = "Hi Friends ";
             $params['tags']='12345678903,1234567654'; //comma separated friends ID's
             $params['place']='155021662189'; 

             $params['name'] = "Some namee";
             $params['link'] = "http://blaha.com";
             $params['description'] = "blah blah blah blah";
             $params['picture'] = "image link"; 
             $params['caption'] = "Join ";


            $shared=$facebook->api("/".$user['id']."/feed", "post", $params);
                         or 
                    $shared=$facebook->api("/me/feed", "post", $params);  

答案 4 :(得分:2)

我已经尝试了一小时,但我认为需要添加新的错误报告。由Debjit发布的前一年工作。

你应该向facebook报告错误。 (如果不存在)。

已更新以下帖子:

  1. how to tag users in application post of a facebook application
  2. Tagging people in a Facebook Post?
  3. Tagging a user in a wall post/update using Facebook API
  4. How to let users tag their friends in a Facebook status update posted from a tab on a Facebook page?