Android Facebook sdk使用我的应用程序交朋友
我试图让我的朋友使用与我使用的相同的应用程序,我编写了以下代码:Android Facebook sdk使用我的应用程序交朋友,android,facebook,Android,Facebook,我试图让我的朋友使用与我使用的相同的应用程序,我编写了以下代码: new GraphRequest( AccessToken.getCurrentAccessToken(), "/me/friends", null, HttpMethod.GET, new GraphRequest.Callback() { public void onComp
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/me/friends",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
Log.d("-@-", "graph response " + response.getJSONObject());
}
}
).executeAsync();
它在logcat中给出了以下错误:
09-14 21:05:10.096: W/FacebookSDK.Request(12520): starting with Graph API v2.4, GET requests for //me/friends should contain an explicit "fields" parameter.
此外,日志中的输出为:
09-14 21:05:10.706: D/-@-(12520): graph response {"summary":{"total_count":776},"data":[]}
有什么帮助吗?请尝试此API调用:
me/friends?fields=name
请参阅v2.4的更改日志中的“声明性字段”:尝试:
private void getUserFriendsFacebookIds() {
GraphRequest request = new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/me/friends",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
Log.d("-@-", "graph response " + response.getJSONObject());
if (response.getError() != null) {
Log.e(TAG, "User data error: " + response.getError(), response.getError().getException());
} else {
setUserFriends(response.getRawResponse());
}
}
}
);
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name");
request.setParameters(parameters);
request.executeAsync();
}
private void setUserFriends(String json) {
FacebookFriendsInfo ff = new Gson().fromJson(json, FacebookFriendsInfo.class);
Log.i(TAG, "User friends: " + ff);
...
}
要解析响应,请尝试使用GSON库
public class FacebookFriendsInfo {
public List<Friend> data = new ArrayList<Friend>();
public String getIds() {
StringBuilder sb = new StringBuilder();
for (Friend f : data) {
sb.append(String.format("%d,", f.id));
}
return sb.toString();
}
@Override
public String toString() {
return "FacebookFriendsInfo{" +
"data=" + data +
'}';
}
public class Friend {
public long id;
public String name;
@Override
public String toString() {
return "Friend{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
}
公共类FacebookFriendsInfo{
public List data=new ArrayList();
公共字符串getIds(){
StringBuilder sb=新的StringBuilder();
用于(朋友f:数据){
sb.append(字符串格式(“%d,”,f.id));
}
使某人返回字符串();
}
@凌驾
公共字符串toString(){
返回“FacebookFriendsInfo{”+
“数据=”+数据+
'}';
}
公课朋友{
公共长id;
公共字符串名称;
@凌驾
公共字符串toString(){
返回“朋友{”+
“id=”+id+
“,name=”“+name+”\“””+
'}';
}
}
}
它给了我“图形响应空”的答案,迪特尔的答案实际上更具体。当然,你不能像在android sdk中那样使用api调用,我的答案只是直接调用,就像你在api浏览器中测试它一样。如果“数据”数组中有数据,我如何获取它们?是的,错误消失了,但图形响应仍然相同,我怀疑现在没有朋友使用我的应用程序。谢谢男人:啊。这一次投票,因为它更具体。当然,如果他们还没有授权你的应用程序,你就不会得到任何朋友:)@Monzer Yaghi Facebook允许你创建临时/假帐户并将它们连接到你的应用程序。如果“数据”数组中有数据,我如何才能得到它们?@Monzer Yaghi编辑了我的答案。