2013-05-22 75 views
3

我試圖創建一個應用程序,你可以「邀請」或通過Facebook請求對話框告訴你的朋友。 https://developers.facebook.com/docs/howtos/androidsdk/3.0/send-requests/獲取哪些用戶的請求發送到Facebook Android

它有點作用,但我需要的一件事就是知道請求發送給誰。我怎樣才能做到這一點?

我還有一個第二個問題,請求通知只顯示在用戶應用程序上 - 而不是桌面頁面上。任何人都知道這件事?

請求代碼:

private void sendRequestDialog() { 
     Bundle params = new Bundle(); 
     params.putString("message", "!"); 

     WebDialog requestsDialog = (
      new WebDialog.RequestsDialogBuilder(MyPage.this, Session.getActiveSession(), params)) 
       .setOnCompleteListener(new OnCompleteListener() { 

        @Override 
        public void onComplete(Bundle values, FacebookException error) { 
         if (error != null) { 
          if (error instanceof FacebookOperationCanceledException) { 
           Toast.makeText(MyPage.this, 
            "Inbjudan avbruten", 
            Toast.LENGTH_SHORT).show(); 
          } else { 
           Toast.makeText(MyPage.this, "Nätverksfel, kontrollera din anslutning och försök igen", Toast.LENGTH_SHORT).show(); 
          } 
         } else { 
          final String requestId = values.getString("request"); 
          if (requestId != null) { 
           Toast.makeText(MyPage.this, "Inbjudan skickad", Toast.LENGTH_SHORT).show(); 
          } else { 
           Toast.makeText(MyPage.this, "Inbjudan avbruten", Toast.LENGTH_SHORT).show(); 
          } 
         } 
        } 



       }) 
       .build(); 
     requestsDialog.show(); 
    } 

如果有人能幫助我,我非常感謝! 謝謝

+0

這是一個很不錯的主意,甚至我認爲它無法在Facebook上的桌面版本。 –

+0

@rickky你在說什麼?獲取用戶ID或發送通知到桌面,因爲後者在教程(鏈接)中說它應該工作。 – PaperThick

+0

我的意思是你的想法很瞭解我們發送friendrequest的人。 –

回答

3

對不起壓痕

Bundle params = new Bundle(); 
RequestsDialogBuilder builder = new WebDialog.RequestsDialogBuilder(activity, Session.getActiveSession(), params); 
builder.setOnCompleteListener(new OnCompleteListener() { 

@Override 
public void onComplete(Bundle values, FacebookException error) { 
if (error == null) { 
    if (values.containsKey("request")) { 

     Set<String> keys = values.keySet(); 

     for(String key:keys) { 
      if(key.contains("to[")) { 
       //I know this keys are horrible, but that's how facebook did it 
       //Here you have the id's to do something with it 
       Logger.d("FACEBOOK", "key " + key + " vlaue " + values.getString(key));      
      } 

     } 
    } else { 
     if (listener instanceof IFacebookCancelableListener) { 
      ((IFacebookCancelableListener) listener).onCancel(); 
     } 
    } 
} else if (error instanceof FacebookOperationCanceledException) { 
    if (listener instanceof IFacebookCancelableListener) { 
     ((IFacebookCancelableListener) listener).onCancel(); 
    } 
} else { 
    //Error 
} 
} 
}); 
WebDialog dialog = builder.build(); 
dialog.show(); 
+2

謝謝你的提示。我花了一個小時嘗試從Bundle值中獲取密鑰「to」,並且始終爲空。直到我看到你的答案。哇,我不敢相信它有這樣醜陋的「關鍵」名字:|。再一次,非常感謝你@Moxor :) –

相關問題