0

我正在使用 Facebook JavaScript sdk 将照片发布到一些粉丝页面。这是我的代码

<form enctype="multipart/form-data" method="post"  action="https://graph.facebook.com/<page_id>/feed" target="ifram_name">
      <input name="source" type="file" style="font-size:13px;" />
      <input type="hidden" name="to" value="113342002047830"/>
      <input type="hidden" name="access_token" value="user_accesstoken"/>
      <input type="hidden" name="type" value="photo" />
</form>

它说“缺少消息或附件”。

我也尝试将“action”更改为“https://graph.facebook.com//feed”,但照片随后会上传到用户的相册。

谁能告诉我的代码中缺少什么?

4

1 回答 1

2

您应该使用photos连接userpagealbum(不是feed)并access_token为用户/页面提供活动。

<form action="https://graph.facebook.com/PAGE_ID/photos"
      method="post" enctype="multipart/form-data">
  <input name="source" type="file">
  <input type="hidden" name="to" value="113342002047830"/>
  <input type="hidden" name="access_token" value="user_accesstoken"/>
</form>

您可以在(岁)博客文章中阅读更多详细信息How-To: Use the Graph API to Upload Photos to a user's profile

请注意,这将上传文件,但您的应用程序/代码不会收到通知,用户将看到如下响应:

{
   "id": "1001207389476"
}

如果不希望这样做,请使用服务器端技术上传照片。另一种选择是使用带有url参数的 JS-SDK:

FB.api('/PAGE_ID/photos', 'post', {
  url: 'http://example.com/image.png',
  message: 'Upload demo'
}, function(response){
  if (response && response.id)
    console.log('Photo uploaded', response.id);
});

更新:
请注意,您应该使用页面access_token才能发布到页面的墙上,如果您提供用户照片,则无论参数access_token如何都会上传到用户的应用程序相册。有关如何获取for 页面的详细信息,to请参阅Authenticating as a Page 。access_token

于 2012-06-11T11:58:06.673 回答