从 Facebook 到 Android 应用程序的姓名和个人资料图片

Posted

技术标签:

【中文标题】从 Facebook 到 Android 应用程序的姓名和个人资料图片【英文标题】:Name and profile picture from Facebook into Android app 【发布时间】:2015-06-04 08:55:41 【问题描述】:

我在显示我的 Facebook 图片和姓名时遇到问题。我想不出正确的方法来做到这一点。我的 Facebook 登录按钮工作正常。

我收到此错误:profilePictureView.setProfileId(profile.getId());错误为空

public class Profile extends Activity 
/**
 * Called when the activity is first created.
 */

WebView web;
ArrayList<NavigationDrawerItem> listItems;
DrawerLayout drawerLayout;
ActionBarDrawerToggle drawerToggle;
ListView list;

private CallbackManager callbackManager;
private ProfilePictureView profilePictureView;

@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    setContentView(R.layout.activity_profile);
    callbackManager = CallbackManager.Factory.create();
    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
    loginButton.setReadPermissions("public_profile", "email", "user_friends");
    final ProfilePictureView profilePictureView = (ProfilePictureView) findViewById(R.id.profilepic);




    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() 


        @Override
        public void onSuccess(LoginResult loginResult) 
            AccessToken accessToken = loginResult.getAccessToken();

  com.facebook.Profile profile = com.facebook.Profile.getCurrentProfile();
            profilePictureView.setProfileId(profile.getId());
Intent i = new Intent(Profile.this, Profile.class);
            startActivity(i);
            System.out.print("Logged in");

        


        public final void getProfileId()
            Log.i("profileId", "Your profileId");
        


        public final void setProfileId(String profileId)    
            Log.i("profileId", "Your profileID");
        

        @Override
        public void onCancel() 
            // App code

        

        @Override
        public void onError(FacebookException exception) 
            // App code
            Log.i("Error", "Error");
        


    );

我的 XML 文件显示无用户图像。但不是我的。

    <com.facebook.login.widget.ProfilePictureView
        android:id="@+id/welcome_profile_pic"
        android:layout_
        android:layout_
        android:layout_gravity="center"
        android:gravity="center_horizontal"
        facebook:preset_size="small" />

【问题讨论】:

去掉了intent inside:onSuccess 【参考方案1】:

First look for me 告诉我你可能错过了

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) 
super.onActivityResult(requestCode, resultCode, data);


【讨论】:

它就在那里 - 我只是在发布之前拿走了一些代码。【参考方案2】:

去掉了intent里面的intent:onSuccess。这解决了我的问题。

【讨论】:

以上是关于从 Facebook 到 Android 应用程序的姓名和个人资料图片的主要内容,如果未能解决你的问题,请参考以下文章

如何从 android 应用程序将纯文本共享到 facebook messenger

通过 Facebook 令牌从 Android 应用程序对 WebAPI 的身份验证访问

“如何”将 Android 应用程序(Facebook 等)安装到 Android 手机? [关闭]

Android 联系信息,包括 facebook 等联系人

从 Facebook Android 提要对话框上传图片或将图片链接到主页

Android facebook应用程序的哈希键