标签: facebook-android-sdk

Facebook 新 sdk - 无法获取好友列表

我正在使用新的Facebook-sdk并使用 hackbook 示例来获取使用文件的朋友列表FriendsList.java。每次都会Friendlist Activity被杀死,我在 logcat 中收到此错误:

11-18 16:20:51.141: ERROR/JavaBinder(7881): !!! FAILED BINDER TRANSACTION !!!.
Run Code Online (Sandbox Code Playgroud)

该问题每次都会重现。请注意,个人资料中的好友数量为 4500。

11-18 16:19:27.932: DEBUG/Facebook-Util(7881): GET URL: https://api.facebook.com/restserver.php?access_token=**********&query=select+name%2C+current_location%2C+uid%2C+pic_square+from+user+where+uid+in+%28select+uid2+from+friend+where+uid1%3Dme%28%29%29+order+by+name&method=fql.query&format=json

11-18 16:20:50.982: WARN/InputManagerService(3426): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@4665a200
11-18 16:20:51.141: ERROR/JavaBinder(7881): !!! FAILED BINDER TRANSACTION !!!
Run Code Online (Sandbox Code Playgroud)

请帮忙!

android facebook facebook-fql facebook-android-sdk

1
推荐指数
1
解决办法
8193
查看次数

使用Facebook SDK 3.0.1 for Android获取电子邮件地址

我目前正在开发一个旨在通过Facebook帐户验证任何用户的应用程序.

我无法从用户的帐户获取用户电子邮件.我的代码如下

    private void signInWithFacebook() {

    SessionTracker mSessionTracker = new SessionTracker(getBaseContext(), new StatusCallback() {

        public void call(Session session, SessionState state, Exception exception) {

        }
    }, null, false);

    String applicationId = Utility.getMetadataApplicationId(getBaseContext());
    Session mCurrentSession = mSessionTracker.getSession();

    if (mCurrentSession == null || mCurrentSession.getState().isClosed()) {
        mSessionTracker.setSession(null);
        Session session = new Session.Builder(getBaseContext()).setApplicationId(applicationId).build();
        Session.setActiveSession(session);
        mCurrentSession = session;
    }

    if (!mCurrentSession.isOpened()) {
        Session.OpenRequest openRequest = null;
        openRequest = new Session.OpenRequest(FacebookLoginActivity.this);

        if (openRequest != null) {
            openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS);
            openRequest.setPermissions(Arrays.asList("user_birthday", "email", "user_location"));
            openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);

            mCurrentSession.openForRead(openRequest);
        }
    }else {
        Request.executeMeRequestAsync(mCurrentSession, new …
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-graph-api facebook-android-sdk

1
推荐指数
1
解决办法
2万
查看次数

Facebook SDK 3.0 - 教程

嘿,有人能指出我在Android的Facebook教程的正确方向吗?他们的开发者网站的教程并不是那么好.

这是我到目前为止所提出的:

public static final int FBResultCode = 100;
private static Session.StatusCallback sharedFBStatusCallback = new Session.StatusCallback()
{
    @Override
    public void call(Session session, SessionState state, Exception exception)
    {
        if(exception != null)
            Log.e("fb error", exception.toString());
        switch(state)
        {
        case OPENED:
                            //login successful
            break;
        case CLOSED:
        case CLOSED_LOGIN_FAILED:
            closeFBSession();
            break;
        default:
            break;
        }
    }
};

public static void openFBSessionWithLoginUI(boolean loginUI)
{
    Session session = Session.getActiveSession();

    if (session != null && 
            !session.isOpened() && 
            !session.isClosed()) 
    {
        ArrayList<String> perms = new ArrayList<String>();
        perms.add("user_likes");
        perms.add("user_birthday");
        perms.add("read_friendlists");

        Session.OpenRequest openRequest …
Run Code Online (Sandbox Code Playgroud)

android facebook-authentication facebook-android-sdk

1
推荐指数
1
解决办法
1万
查看次数

Android - 清除Facebook访问令牌

我有一个SettingsActivity地方有几个选项,包括寻找Facebook好友和退出.因此,当用户选择找到她的Facebook好友时,她将被发送到另一个活动,我让她使用她的Facebook帐户登录并保存她的访问令牌.然后,当她选择退出时,她的访问令牌将被清除.问题是,我的logout方法与我创建会话的方法没有写在同一个活动中,所以当我尝试这个时:

    Session session = Session.getActiveSession();
    if (!session.isClosed()) {
        session.closeAndClearTokenInformation();
    }
Run Code Online (Sandbox Code Playgroud)

Logcat积分NullPointerException.然后我尝试了:

Session.setActiveSession(null);
Run Code Online (Sandbox Code Playgroud)

这也不起作用(之前登录的用户的朋友仍然显示,而不是要求新用户登录).

那么我该怎么做才能清除获得的令牌呢?先感谢您.

-编辑-

我认为我用来打开会话的活动有问题.我关注了Facebook的GraphAPISample,这就是我所做的:

public class FacebookFriendsActivity extends FragmentActivity{
    private BroadcastReceiver broadcast;
    public static Session session;
    private boolean pendingRequest;
    static final String PENDING_REQUEST_BUNDLE_KEY = "PendingRequest";

    private DatabaseHandler db;
    private FindFacebookFriends task;
    private ProgressBar progress;
    private TextView text;
    private Button retryBtn;
    private ListView userLayout;
    private ArrayList<User> userList;
    private FollowAdapter adapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.facebook_friends);
        // ... set …
Run Code Online (Sandbox Code Playgroud)

android facebook facebook-graph-api facebook-android-sdk

1
推荐指数
1
解决办法
1万
查看次数

Facebook SDK 3.7 for Android请求电子邮件权限

我正在使用Facebook SDK for Android,以允许用户注册和使用应用程序.我想获得一些关于用户的基本信息,如用户名和电子邮件.无论如何,我有问题因为我在尝试获取用户电子邮件时遇到空指针异常.

String email = user.getProperty("email").toString();
Run Code Online (Sandbox Code Playgroud)

我假设我收到此错误,因为我没有请求电子邮件权限.我怎么能这样做?

这是完整的代码:

public class RegisterActivity extends ActionBarActivity{

Button btnFacebook;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);

    getSupportActionBar().hide();

    btnFacebook = (Button) findViewById(R.id.btn_facebook);


    btnFacebook.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Log.d("FACEBOOK", "Prije sesije");
            // start Facebook Login
                        Session.openActiveSession(RegisterActivity.this, true, new Session.StatusCallback() {
                            // callback when session changes state
                            @SuppressWarnings("deprecation")
                            @Override
                            public void call(Session session, SessionState state,
                                    Exception exception) {
                                Log.d("FACEBOOK", "U call");
                                if(session.isOpened()){                     

                                    Log.d("FACEBOOK", "ako je sesija otvorena");

                                    // …
Run Code Online (Sandbox Code Playgroud)

email android facebook facebook-android-sdk facebook-sdk-3.0

1
推荐指数
1
解决办法
4088
查看次数

Android - Facebook SDK获取用户名 - Request.GraphUserCallback返回null

我想用这个简单的应用程序显示我的Facebook名称,该应用程序在点击按钮后登录login().

会话正确打开,但Request.GraphUserCallback不起作用似乎返回null.

当我启动我的应用程序时,LogCat不会显示任何错误,但是user.name()当Graph API返回用户时,我无法在onCompleted上看到我的Toast.

这是我没有导入和没有布局的代码:

public class MainActivity extends Activity {

private Session.StatusCallback statusCallback;
private Request.GraphUserCallback requestGraphUserCallback;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Toast.makeText(getApplicationContext(), "Ci siamo", Toast.LENGTH_SHORT).show();       

    statusCallback= new SessionStatusCallback();

    requestGraphUserCallback = new RequestGraphUserCallback();    

}


public void login(View view){


    Toast.makeText(getApplicationContext(), "Login", Toast.LENGTH_SHORT).show();

    // start Facebook Login
    Session.openActiveSession(this, true, statusCallback);

     Toast.makeText(getApplicationContext(), "finito login", Toast.LENGTH_SHORT).show();

}


//CLASSE SESSIONE
private class SessionStatusCallback implements Session.StatusCallback {

    @Override
    public void call(Session session, SessionState state, Exception exception) {

         if (session.isOpened()) …
Run Code Online (Sandbox Code Playgroud)

android facebook-graph-api facebook-android-sdk

1
推荐指数
1
解决办法
3775
查看次数

如何在android中应用Material Design Facebook按钮

我正在使用compile 'com.facebook.android:facebook-android-sdk:4.7.0' 和:

<com.facebook.login.widget.LoginButton
      android:id="@+id/tutorial_button_login"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      android:layout_centerHorizontal="true"
      android:layout_marginBottom="16dp"
      />
Run Code Online (Sandbox Code Playgroud)

但按钮看起来很难看: 例

有没有办法让它看起来物化或更酷?

android facebook-android-sdk

1
推荐指数
1
解决办法
4098
查看次数

进程'命令'C:\ Program Files\Java\jdk1.8.0_25\bin\java.exe''以非零退出值2结束

我的项目有些错误.我是Android初学者.当我尝试编译我的应用程序时,我收到以下错误

错误:任务':app:transformClassesWithDexForDebug'的执行失败.com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files\Java\jdk1.8.0_25\bin\java.exe''以非零退出值2结束

我正在使用Parse SDK登录Facebook,但在这一刻,我只在我的应用程序中使用此代码:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // [Optional] Power your app with Local Datastore. For more info, go to
    // https://parse.com/docs/android/guide#local-datastore
    Parse.enableLocalDatastore(this);

    Parse.initialize(this);
Run Code Online (Sandbox Code Playgroud)

我的build.gradle是:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "com.example.daniele.myapplication"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}


  buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}  
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile 'com.parse:parse-android:1.+' …
Run Code Online (Sandbox Code Playgroud)

java parsing android facebook-android-sdk android-gradle-plugin

1
推荐指数
1
解决办法
1万
查看次数

如何通过android中的访问令牌获取facebook用户的性别

在Android Studio中,使用facebook SDKGraphRequest和令牌,我可以获得除性别之外的帐户信息。

这是我尝试过的脚本:

GraphRequest request = GraphRequest.newMeRequest(token, (object, response) -> {
    Log.e("fbLoginActivity", object.toString());

    String fbId;
    String fbEmail;
    String fbFirst_name;
    String fbLast_name;
    String fbBirthday;
    String fbGender;
    String fbPhoto;

    try {
        String fbId = object.getString("id");
        String fbEmail = object.getString("email");
        String fbFirst_name = object.getString("first_name");
        String fbLast_name = object.getString("last_name");
        String fbBirthday = object.getString("birthday");
        String fbGender = object.getString("gender"); // <-- ERROR, but when I comment this line, it works (without gender data)
        String fbPhoto = "http://graph.facebook.com/" + fbId + "/picture?type=large";
    } catch …
Run Code Online (Sandbox Code Playgroud)

android facebook-android-sdk facebook-login firebase facebook-sdk-4.0

1
推荐指数
1
解决办法
2261
查看次数

尝试将 .AAB 上传到 Google Play 管理中心 (res/values-fb) 时出错

当我使用 5.9.0 或最新的 Facebook Android SDK 编译 .AAB 并尝试将其上传到 Google Play Console 时,会发生错误。

您的应用程序包针对以下无法识别的语言:fb。支持的语言代码列表可以在 IANA 注册表中找到。可以使用 resConfigs Gradle 属性排除由第三方库导致的无效语言。

我认为这是因为一个名为“values-fb”的文件夹,该文件夹包含一些文件,通常用于翻译。但是,这个“fb”不是 IANA.org 允许的语言。 https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

有什么办法解决吗?

android facebook-android-sdk

1
推荐指数
1
解决办法
6515
查看次数