親愛なる開発者Facebookからデータを保存しようとしています。私は他のすべてのデータを取得していますが、メールと性別は取得できません。Facebook SDKのメールと性別が指定されています。
これは、今、私はあなたが私の上記のコードではエラーが何であるかを知っているだろう私のコード
loginButton.setReadPermissions("public_profile");
loginButton.setReadPermissions("email");
loginButton.setReadPermissions("user_friends");
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken accessToken = loginResult.getAccessToken();
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object,GraphResponse response) {
if (response != null) {
try {
email = object.getString("email");
} catch (JSONException e) {
e.printStackTrace();
}
try {
gender = object.getString("gender");
} catch (JSONException e) {
e.printStackTrace();
}
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "email,gender");
request.setParameters(parameters);
request.executeAsync();
Profile profile = Profile.getCurrentProfile();
userid = profile.getId();
userfirstname = profile.getFirstName();
middlename = profile.getMiddleName();
userlastname = profile.getLastName();
userimage = profile.getProfilePictureUri(30, 40);
linkuri = profile.getLinkUri();
name = profile.getName();
new AsyncTask<String, String, String>() {
@Override
protected String doInBackground(String... params) {
WebService ws = new WebService(URL);
Map<String, String> data = new HashMap<String, String>();
data.put("user_fb_id", userid);
data.put("first_name", userfirstname);
data.put("middle_name", userfirstname);
data.put("gender", gender);
data.put("email", email);
data.put("last_name", userfirstname);
data.put("user_fb_profile_name", name);
data.put("fb_profile_pic", userimage.toString());
try {
String response = ws.makeHTTPRequest(data, "POST");
JSONObject jsonObject = new JSONObject(response);
Log.e("Response", jsonObject.toString());
} catch (Exception e) {
Log.d("", "Exception : " + e.getMessage());
}
return null;
}
}.execute();
}
@Override
public void onCancel() {
//info = ("Login attempt canceled.");
}
@Override
public void onError(FacebookException e) {
// info = ("Login attempt failed.");
}
});
です。
私がGraphRequestを実行すると、正常に実行されますが、電子メールと性別は取得されませんでした。電子メールと性別がNULLに等しいGrapRequestメソッドの後に私はAsyncTaskを実行し、そのデータを私のWebサービスの投稿クラスに送信します。私のクラスは私にメールと性別のヌルエラーを与えますが、実行後に電子メールと性別AsyncTask彼らはそのデータを持っていますので、その問題の解決方法を教えてください。
私は、私が試してみたいことを別の方法で教えてもらえれば、ユーザーの基本データを保存したいと思っています。
ユーザーが電子メールを提供しても、電子メールが有効でない場合は、要求を受け付けません。 – RAAAAM
あなたはメールについては正しいですが、私の場合はメールがあり、リクエストから取得していますが、AsyncTaskの実行後です。私はAsyncTaskの実行から前にそれを取得したい。 –