2015-08-27 2 views
0

Я пытаюсь получить токен доступа к Facebook без кнопки входа. Я использую facebook sdk 4.4.0.Получить токен доступа к Facebook без входа в android

это мой код:

public void getImagesFromCloud(final CloudObject cloud){ 
    String socialName = cloud.getSocialName(); 

    switch (socialName) { 
     case CloudUtills.NAME_FACEBOOK: 
      FacebookSdk.sdkInitialize(mContext.getApplicationContext()); 
      CallbackManager callbackManager = CallbackManager.Factory.create(); 
      LoginManager.getInstance().registerCallback(callbackManager, facebookCallback); 
      LoginManager.getInstance().logInWithReadPermissions((Activity) mContext, Arrays.asList("public_profile")); 
     break; 
} 

FacebookCallback<LoginResult> facebookCallback = new FacebookCallback<LoginResult>() { 
    @Override 
    public void onSuccess(LoginResult loginResult) { 
     CloudUtills.TOKEN_FACEBOOK = loginResult.getAccessToken().getToken(); 
     HashMap<String,String> params = new HashMap<>(); 
     params.put(CloudUtills.NAME_FACEBOOK, CloudUtills.TOKEN_FACEBOOK); 
     new CloudImportRequest(CloudUtills.NAME_FACEBOOK, params, CloudAdapter.this); 
    } 

    @Override 
    public void onCancel() { 
     Utility.d("facebook canceled"); 
    } 

    @Override 
    public void onError(FacebookException e) { 
     Utility.e("facebook error: " + e.getLocalizedMessage()); 
    } 
}; 

@Override 
public void onResult(String response) { 
    Utility.d("cloud import response: " + response); 
} 

@Override 
public void onErrorResult(String err) { 
    new MyToast(mContext, "Cannot import cloud", 2, Toast.LENGTH_LONG).show(); 
} 

в menifest.xml:

<meta-data 
     android:name="com.facebook.sdk.ApplicationId" 
     android:value="@string/facebook_key" /> 

<activity 
     android:name="com.facebook.FacebookActivity" 
     android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 

Когда я пытаюсь проверить подлинность, и работает logInWithReadPermissions, диалог прогресса показывает для второй, а затем исчезают и ничего не происходит (не входя в facebookCallback).

ответ

1

Вы включили эту строку в onActivityResult? Вам нужно это для управления обратным вызовом из facebook в вашу деятельность. Надеюсь, поможет!

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

      callbackManager.onActivityResult(requestCode, resultCode, data); 
     } 
+0

спасибо !!! оно работает! – OShiffer

+0

Когда я пытаюсь пройти аутентификацию и запускаю logInWithReadPermissions, диалог прогресса отображается на секунду, а затем исчезает и ничего не происходит (не входя в facebookCallback). когда приложение facebook установило свою работу, когда приложение facebook не установлено, что оно не работает. Может помочь нам? его бросание. недопустимый user_scope –

Смежные вопросы