1
試圖讓我的Android應用程序獲取已登錄的Facebook用戶的電子郵件,生日和地點。前兩個字段可以成功檢索,但Graph API的響應中缺少位置,我找不到原因。GraphRequest(Android Facebook SDK)缺少位置數據
我登錄這些權限:
LoginManager.getInstance().logInWithReadPermissions(LoginActivity.this, Arrays.asList("public_profile", "user_friends", "email", "user_birthday", "user_location"));
的GraphRequest執行如下:
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
try {
Log.d("jsonTest171", object.toString(4));
String email = object.getString("email");
UserData.emailAddress = email;
String birthday = object.getString("birthday");
UserData.birthday = birthday;
String location = object.getJSONObject("location").getString("name");
UserData.location = location;
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,email,location,birthday");
request.setParameters(parameters);
request.executeAsync();
Facebook的用戶應用程序設置爲允許所有3個必填字段,as shown here。
這是包括在上面的代碼從調試線輸出的logcat:
{
"id": "101936745620608",
"email": "[email protected]",
"birthday": "12\/20\/1983"
}
爲什麼是所請求的位置字段在圖形響應不存在?
您是否驗證過用戶實際上授予了pe應用程序的空閒? (調試令牌,或者調用'/ me/permissions'來驗證。) – CBroe
是的,用戶已經允許所有請求的權限。我用/ me/permissions /進行了雙重檢查,並將user_location設置爲授予。 – SVM
你可以在Graph API Explorer(使用你的應用程序ID)中嘗試請求,https://developers.facebook.com/tools/explorer-那裏有什麼結果?它是否顯示任何調試消息? – CBroe