如何在没有FQL的情况下检查Facebook相册是否已存在

时间:2014-10-23 11:31:39

标签: javascript facebook-graph-api facebook-fql

现在已经弃用了FQL,是否有一种有效的方法可以验证相册是否已经存在(因为我没有可用的相册ID)我看过this帖子,但评价最高的答案依赖于FQL。我希望我不必检索所有专辑,并将每个结果专辑名称与相关名称进行比较。

如果我必须检索所有相册并比较结果,是否有人可以分享一个方便的Javascript片段?

2 个答案:

答案 0 :(得分:1)

您无法按名称查询相册,您只需要请求整个列表,并且手动"在搜索结果中搜索所需的专辑。

您可以使用此端点获取当前用户的所有相册:

me/albums?fields=name

这将以以下格式返回结果:

{
  "data": [
    {
      "name": "Profile Pictures", 
      "id": "XXXX", 
      "created_time": "2010-08-24T07:44:36+0000"
    }, 
    {
      "name": "Cover Photos", 
      "id": "YYYY", 
      "created_time": "2011-09-22T22:58:07+0000"
    }, 
    ...
  ]
}

然后要找到所需的相册(my_album),您将使用与此类似的代码:

results = get_albums(); // making the actual API call
found_album = false;
for ( var i = 0; i < results.data.length; i++ ){
  if ( results.data[ i ][ "name" ] == "my_album" ){
    found_album = true;
    break; // no need to continue searching
  }
}

答案 1 :(得分:0)

呼!

这是我在使用Lix的片段后想出来的。我很想知道有没有比使用模型和局部变量来处理服务响应更有效的方法。

Appery.io模型:

fbAlbumList [Array]
    fbAlbumList[i] [Object]
            name [String]
            id [String]

Appery.io Local Variable

fbAlbums - Local Storage - Type fbAlbumList

JS

var found_album = false;
var results = [];

results = JSON.parse(localStorage.getItem('fbAlbums'));  // fbAlbums is a model/local variable
for (var i = 0; i < results.length-1; i++) {
    if (results[i].name == <comparison name>) {
        found_album = true;
        break; // no need to continue searching
    }
}
相关问题