2016-01-13 138 views
7

集成的Facebook登錄在我的Android應用程序。
我在我的應用程序)兩大需求
1)入門登錄的用戶的電子郵件ID
2發佈有關應用程序的安裝和連接Facebook登錄與Android的Facebook閱讀和發佈權限SDK 4.8.0

進到用戶的Facebook牆上,我可以能夠通過使用讀取權限

得到電子郵件
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(); 
      } 
     } 
} 

我可以能夠通過使用權限發佈

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(); 
      } 
     } 
} 

沒有再登錄後的飼料昌e許可。
但我的要求是獲取電子郵件ID併發布到Facebook的飼料。 我知道登錄可以與讀取權限或發佈權限相關聯。 我搜索了這個發現有一件事是會話,但是, Facebook文檔說:會話類不再在最新版本的SDK中可用 然後我該如何執行此操作。他們是否有辦法這樣做。 在此先感謝..

+1

你到底要什麼文章?聽起來像你想自動加載到用戶配置文件,與他安裝應用程序的信息? – luschn

+0

您不能自動發帖,或者爲用戶指定帖子的留言。 – CBroe

+0

@ luschn感謝您的重播..正是我想要的是自動發佈到用戶配置文件。 –

回答

0

您需要添加一些權限並添加以下代碼fr共享飼料,下面的代碼也包含圖像。您可以根據需要自定義它。

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 }