如何使用文字和图片做简单的Facebook状态发布

时间:2013-10-09 11:25:52

标签: javascript facebook facebook-graph-api

我正在使用JavaScript API。我可以做一个没有问题的简单文本帖子:

var params = {};
params['message'] = 'The text';
FB.api("me/feed", 'post', params, function(response) {
   if (!response || response.error)
      alert(response.error.message);
   else
      alert('Post ID: ' + response.id);
});

添加图片:

params['picture'] = "http://mysite.com/link-to-picture";
params['type'] = "photo";
...

使用图片作为缩略图发布带有乱码链接的链接类型状态。

如果我使用“我的/照片”,它第一次正常工作:

var params = {};
params['message'] = 'The text';
params['url'] = "http://mysite.com/link-to-picture";
FB.api("me/photos", 'post', params, function(response) {
   if (!response || response.error)
      alert(response.error.message);
   else
      alert('Post ID: ' + response.id);
});

但是如果我再做一个帖子,我会丢失我的Feed中的第一个帖子项目,并在Feed中使用第二篇文章和两张(无关的)图片获取相册类型演示文稿

我能够通过自己的文字和图片获得不同状态帖子的唯一方法是首先创建一个序列编号的相册,然后将图片发布到该帖子。

var aparams = {};
aparams['name'] = "post"+postid;
aparams['message'] = "album for post "+postid;
FB.api("me/albums", 'post', aparams, function(response) {
  if (!response || response.error)
  {
     alert("Creating album: "+response.error.message);
  }
  else
  {
     alert('Album ID: ' + response.id);
     var aid = response.id;
     params['url'] = "http://mysite.com/link-to-picture";
     FB.api(aid+"/photos", 'post', params, function(response) {
        if (!response || response.error)
           alert("Posting photo: "+response.error.message);
        else
           alert('Post ID: ' + response.id);
     });
  }
});

这不是正确的方法 - 创建大量单张相册!

我注意到我默认拥有“时间线照片”专辑,所以我可以获取其ID,然后将照片上传到该专辑。但那我怎么做只有文字的FB.api(“我/喂”......)帖子并参考图片。我在文档中找不到类似的内容。

在我看来,我的要求是非常基本的。有没有人能够做对吗?

1 个答案:

答案 0 :(得分:0)

Facebook会以特定时间间隔自动检测在相册中上传的图片作为单个帖子并加入其中。它还可以防止它通过应用程序发送垃圾邮件。