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

Ste*_*ale 5 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);
});
Run Code Online (Sandbox Code Playgroud)

添加图片:

params['picture'] = "http://mysite.com/link-to-picture";
params['type'] = "photo";
...
Run Code Online (Sandbox Code Playgroud)

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

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

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);
});
Run Code Online (Sandbox Code Playgroud)

但是如果我再做一个帖子,我会丢失我的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);
     });
  }
});
Run Code Online (Sandbox Code Playgroud)

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

我注意到我默认有一张'Timeline Photos'专辑,所以我可以获得它的ID,然后将图片上传到那里.但那我怎么做只有文字的FB.api("我/喂"......)帖子并参考图片.我在文档中找不到类似的东西.

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

Vin*_*ala 0

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