2012-12-05 228 views
3

有沒有辦法告訴Facebook的android SDK發送一個用戶 - >用戶的應用程序請求摩擦求救?Facebook - 在android上的無摩擦請求

我已經通過關於facebook website的教程,在android上集成了一個應用程序。有一些關於如何使用mFacebook.dialog(context, "apprequests", params, new AppRequestsListener());發送facebook user->user requests的文檔,但沒有提及如何使這些請求無摩擦。在網上選擇seems to do the trick。我試圖在mFacebook.dialog()(使用參數引用)調用時將此參數設置爲參數,但這沒有幫助。 facebook請求對話框documentation page聲稱此功能在android上可用。沒有提及如何啓用它。

無摩擦的請求使用JavaScript SDK在桌面上 帆布和移動網絡以及與iOS和上 原生移動應用Android SDK相關支持。

是否存在可用於android的等價調用,以便用戶在請求對話框中看到「不要再詢問」(請參見下圖)選項?現在,即使先前發送了請求,每次都會顯示請求對話框。

Frictionless requests

回答

11

我已經與同樣的事情今天奮鬥。我終於找到了一種適合我的方式。 我使用SDK 3.0.2b,我跟着這裏https://developers.facebook.com/docs/howtos/androidsdk/3.0/send-requests/

引導在步驟2中所述引導建議的代碼:

private void sendRequestDialog() { 
    Bundle params = new Bundle(); 
    params.putString("message", "Learn how to make your Android apps social"); 
    WebDialog requestsDialog = (
    ... 

大量的試驗和誤差加法PARAM摩擦後= 1工作對我來說:

private void sendRequestDialog() { 
    Bundle params = new Bundle(); 
    params.putString("message", "Learn how to make your Android apps social"); 

    params.putString("frictionless", "1"); //Turn on frictionless 

    WebDialog requestsDialog = (
    ... 
+0

感謝您分享! – George

+0

太棒了!寫過FB開發團隊將這些信息添加到文檔中。 – Kie

+0

謝謝,我認爲這在Android上無法實現,因爲Facebook官方文檔稱「無摩擦請求可用於Facebook.com上的遊戲或使用JavaScript SDK的移動Web上」(https://developers.facebook.com/docs/reference /對話框/請求/)。但我找到了你的解決方案,它的作用就像一個魅力! :) –

0

在包中使用無摩擦的「參數」,但也應該提供參數「to」,然後才能正常工作。其實我在兩種情況下使用,當我傳遞「參數」,然後「不要再問」沒有顯示。但是當使用「to」參數時它的工作。

  Bundle params = new Bundle(); 
     params.putString("message", msg); 
     params.putString("data", json); 
     params.putString("title", title); 
     params.putString("frictionless", "1"); 

在上面的代碼中它不起作用。 但在下面的代碼中它正在工作。

  Bundle params = new Bundle(); 
     params.putString("message", msg); 
     params.putString("data", json); 
     params.putString("to", appendedFriendsID); 
     params.putString("title", title); 
     params.putString("redirect_uri", ""); 
     params.putString("frictionless", "1");