2016-01-13 17 views
7

Accesso Facebook integrato nella mia applicazione Android.
Ho due requisito nella mia applicazione
1) Preparazione registrato utente id-mail
2) Pubblica un feed per utente di Facebook parete circa l'installazione di app e il collegamentoAccesso Facebook con autorizzazione di lettura e pubblicazione in Android facebook SDK 4.8.0

posso in grado di ottenere e-mail utilizzando autorizzazioni di lettura

private void fbLogin() { 
    LoginManager.getInstance().logInWithReadPermissions(this, 
      Arrays.asList(
        "public_profile", 
        "user_birthday", 
        "email" 
      ) 
    ); 
    LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      SharedPreferences.Editor editor = facebookPreferences.edit(); 
      AccessToken accessToken = loginResult.getAccessToken(); 
      if (accessToken != null) { 
       fbProfile(); 
      } 
     } 
} 

posso in grado di pubblicare il feed utilizzando pubblicare i permessi

private void fbLogin() { 
    LoginManager.getInstance().logInWithPublishPermissions(this, 
      Arrays.asList(
        "publish_actions" 
      ) 
    ); 
    LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      SharedPreferences.Editor editor = facebookPreferences.edit(); 
      AccessToken accessToken = loginResult.getAccessToken(); 
      if (accessToken != null) { 
       fbPostAFeed(); 
      } 
     } 
} 

senza effettuare il login di nuovo per chang e il permesso.
Ma il mio requisito è ottenere l'ID e-mail e postare un feed su Facebook. So che l'accesso può essere associato a permessi di lettura o autorizzazioni di pubblicazione. Ho cercato su questo trovato una cosa è Session ma, Doc Facebook dice: La classe di sessione non è più disponibile nella versione più recente dell'SDK Quindi, come posso eseguire questo. È il loro modo per farlo. Grazie in anticipo ..

+1

cosa esattamente cosa desiderate inviare? sembra che tu voglia autopostare sul profilo utente, con le informazioni su cui ha installato l'app? – luschn

+0

Non è consentito pubblicare automaticamente o specificare il messaggio di un post per l'utente. – CBroe

+0

@ luschn Grazie per il vostro replay .. Esattamente quello che volevo è la registrazione automatica al profilo utente. –

risposta

0

È necessario aggiungere alcune autorizzazioni e aggiungere sotto codice fr condivisione dei feed, sotto il codice contiene anche le immagini. Puoi personalizzarlo secondo le tue necessità.

List<String> permissionNeeds = Arrays.asList("publish_actions"); 
 

 
\t \t manager = LoginManager.getInstance(); 
 

 
\t \t manager.logInWithPublishPermissions(this, permissionNeeds); 
 

 
\t \t manager.registerCallback(callbackManager, 
 
\t \t \t \t new FacebookCallback<LoginResult>() { 
 
\t \t \t \t \t @Override 
 
\t \t \t \t \t public void onSuccess(LoginResult loginResult) { 
 
\t \t \t \t \t \t publishImage(); 
 

 
\t \t \t \t \t } 
 

 
\t \t \t \t \t @Override 
 
\t \t \t \t \t public void onCancel() { 
 
\t \t \t \t \t \t System.out.println("onCancel"); 
 
\t \t \t \t \t } 
 

 
\t \t \t \t \t @Override 
 
\t \t \t \t \t public void onError(FacebookException exception) { 
 
\t \t \t \t \t \t System.out.println("onError"); 
 
\t \t \t \t \t } 
 
\t \t \t \t }); 
 

 
\t } 
 

 

 
    private void publishImage() { 
 
\t \t Bitmap image = BitmapFactory.decodeResource(getResources(), 
 
\t \t \t \t R.drawable.ic_launcher); 
 

 
    //You need to get bitmap from any source. 
 

 
\t \t SharePhoto photo = new SharePhoto.Builder().setBitmap(image) 
 
\t \t \t \t .setCaption("Welcome To Facebook Photo Sharing on steroids!") 
 
\t \t \t \t .build(); 
 

 
\t \t SharePhotoContent content = new SharePhotoContent.Builder().addPhoto(
 
\t \t \t \t photo).build(); 
 

 
\t \t ShareApi.share(content, null); 
 
\t \t Toast.makeText(this, "Succsesfully posted on your wall", 
 
\t \t \t \t Toast.LENGTH_LONG).show(); 
 

 
\t }

Problemi correlati