[英]Android Facebook sdk GraphRequest returns null when get user info
我正在嘗試使用Facebook API允許用戶登錄我的應用,登錄操作成功完成,並且我獲得了訪問令牌,但是當我使用GraphRequest獲取用戶信息時,它是響應並且對象返回null,我我在android開發中完全是新手。 這是我的代碼:
public class SignIn extends Fragment {
private LoginButton loginButton;
private CallbackManager callbackManager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.fragment_sign_in, container, false);
Button button = (Button) v.findViewById(R.id.button_signin);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getActivity(),Home.class);
startActivity(i);
getActivity().finish();
}
});
callbackManager = CallbackManager.Factory.create();
loginButton = (LoginButton) v.findViewById(R.id.facebook_button);
loginButton.setReadPermissions("email");
loginButton.setFragment(this);
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(
AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
= try {
Log.d("id",object.getString("id")) ;
Log.d("email",object.getString("email")) ;
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getActivity().getApplicationContext(),e.getMessage(),Toast.LENGTH_LONG).show();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException exception) {
}
});
return v ;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
build.gradle(項目)(如果需要)
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
我發現我忘了在清單中添加這個:
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.