如何使用图形api设置Facebook个人资料图片

Mau*_*sky 26 facebook facebook-graph-api

有没有办法使用图形api更改用户的个人资料图片?

我知道你不能用其余的api(参考),但我在新的图形api中找不到任何东西.

fre*_*rik 42

使用Graph API将图片上传到现有相册(或创建新相册).看起来像这样:

  $args = array('message' => 'Caption');
  $args['image'] = '@' . realpath("the_image.png");

  try {
    $data = $facebook->api('/'.$album_uid.'/photos', 'post', $args);
  }
  catch(Exception $e) {
    print "<pre>";
    print_r($e);
    print "</pre>";
  }
Run Code Online (Sandbox Code Playgroud)

然后通过Graph API获取上传的图像并重定向到图像的链接,添加&makeprofile=1到查询字符串.现在,用户将被重定向到配置文件图像裁剪页面:

try {
  $pictue = $facebook->api('/'.$data['id']);
  header("Location: ".$pictue['link']."&makeprofile=1");
}
catch(Exception $e) {
  print "<pre>";
  print_r($e);
  print "</pre>";
}
Run Code Online (Sandbox Code Playgroud)

  • @Mattias我不认为这会违反政策,因为您没有自己设置个人资料图片.它只会弹出一个对话框,允许用户这样做,他可以选择不这样做. (5认同)
  • 可悲的是,'makeprofile = 1'技巧似乎不再起作用了.它*是*facebook使用的URL,但只有在您从影院视图中单击它时才有效. (2认同)

Sur*_*rya 7

PicBadges应用程序正在清楚地完成这项工作.只需看看他们的应用程序.它非常清楚它们是如何实现的.

他们没有直接将图片上传到"个人资料图片"相册.相反,他们像往常一样上传到他们自动生成的专辑(在他们的应用名称上),然后选择pic作为"个人资料照片".但是,此方法涉及将用户重定向到他们需要在完成之前裁剪它的页面.

有趣的实施要注意!


Pat*_*ich 5

您可以使用图谱API上传到用户的个人资料相册,但似乎无法更新/ me /图片值以将用户当前个人资料图像设置为您上传的图像.