使用 Phonegap Facebook Connect 插件的离子框架 API 无法使朋友分页工作
Ionic Framework Using Phonegap Facebook Connect Plugin API cant make pagination of friends work
我的离子视图为好友视图使用无限滚动,这是控制器:
$scope.friends = [];
$scope.after = "";
var getFriends = function(after)
{
var friends = $q.defer();
UserService.getUser().then(function (d) {
var url = '/me?fields=taggable_friends&access_token='+ d.authResponse.accessToken;
if (after != "")
{
url += "&limit=25&after="+after;
}
facebookConnectPlugin.api(url, null,
function (response) {
console.log(response);
friends.resolve(response);
},
function (response) {
console.log(response);
friends.reject(response);
}
);
});
return friends.promise;
};
$scope.loadMoreData = function()
{
getFriends($scope.after).then(function(d)
{
$scope.friends = $scope.friends.concat(d.taggable_friends.data);
$scope.after = d.taggable_friends.paging.cursors.after;
$scope.$broadcast('scroll.infiniteScrollComplete');
});
};
第一个调用执行到url:
"/me?fields=taggable_friends&access_token=myAccessToken" 并且我收到如下对象:
object
{
id: "string"
taggable_friends
{
data
{
[n]objects
}
paging
{
cursors
{
after: "string"
before: "string"
}
next: "string"
}
}
}
第二次调用 url 是:
/me?fields=taggable_friends&access_token=myAccessToken&after=QWFKVko1NlJmWUREajBTeERZAbmFJUzlLUWp5ZA3o5cDA5SWVHc1BKblJ6ODMweDd4TzdxMlJyOTdKNDlUb0NHQWl1M3FJbXdjbkpWc2NwSlNiS25peV8zYV9vdTdGbXFPMG5YNnpDSW1jWkVNX0EZD
在这两种情况下,我得到的是同一个对象。具有完全相同的数据。当我对这 2 个 URL 使用浏览器时,我得到了不同的(正确的)数据。
I even tried to request /me?fields=taggable_friends&access_token=myAccessToken&after=QWFKVko1NlJmWUREajBTeERZAbmFJUzlLUWp5ZA3o5cDA5SWVHc1BKblJ6ODMweDd4TzdxMlJyOTdKNDlUb0NHQWl1M3FJbXdjbkpWc2NwSlNiS25peV8zYV9vdTdGbXFPMG5YNnpDSW1jWkVNX0EZD in first call, but still I get the same data.
我终于找到了解决办法!
我不知道是什么原因,但是 API 像“/me?fields=taggable_friends&access_token=...”这样的调用在以下情况下不起作用"after" 添加了参数。
应该这样用:“/me/taggable_friends?access_token=...”,这样就可以了
我的离子视图为好友视图使用无限滚动,这是控制器:
$scope.friends = [];
$scope.after = "";
var getFriends = function(after)
{
var friends = $q.defer();
UserService.getUser().then(function (d) {
var url = '/me?fields=taggable_friends&access_token='+ d.authResponse.accessToken;
if (after != "")
{
url += "&limit=25&after="+after;
}
facebookConnectPlugin.api(url, null,
function (response) {
console.log(response);
friends.resolve(response);
},
function (response) {
console.log(response);
friends.reject(response);
}
);
});
return friends.promise;
};
$scope.loadMoreData = function()
{
getFriends($scope.after).then(function(d)
{
$scope.friends = $scope.friends.concat(d.taggable_friends.data);
$scope.after = d.taggable_friends.paging.cursors.after;
$scope.$broadcast('scroll.infiniteScrollComplete');
});
};
第一个调用执行到url: "/me?fields=taggable_friends&access_token=myAccessToken" 并且我收到如下对象:
object
{
id: "string"
taggable_friends
{
data
{
[n]objects
}
paging
{
cursors
{
after: "string"
before: "string"
}
next: "string"
}
}
}
第二次调用 url 是: /me?fields=taggable_friends&access_token=myAccessToken&after=QWFKVko1NlJmWUREajBTeERZAbmFJUzlLUWp5ZA3o5cDA5SWVHc1BKblJ6ODMweDd4TzdxMlJyOTdKNDlUb0NHQWl1M3FJbXdjbkpWc2NwSlNiS25peV8zYV9vdTdGbXFPMG5YNnpDSW1jWkVNX0EZD
在这两种情况下,我得到的是同一个对象。具有完全相同的数据。当我对这 2 个 URL 使用浏览器时,我得到了不同的(正确的)数据。
I even tried to request /me?fields=taggable_friends&access_token=myAccessToken&after=QWFKVko1NlJmWUREajBTeERZAbmFJUzlLUWp5ZA3o5cDA5SWVHc1BKblJ6ODMweDd4TzdxMlJyOTdKNDlUb0NHQWl1M3FJbXdjbkpWc2NwSlNiS25peV8zYV9vdTdGbXFPMG5YNnpDSW1jWkVNX0EZD in first call, but still I get the same data.
我终于找到了解决办法!
我不知道是什么原因,但是 API 像“/me?fields=taggable_friends&access_token=...”这样的调用在以下情况下不起作用"after" 添加了参数。
应该这样用:“/me/taggable_friends?access_token=...”,这样就可以了