2012-12-05 187 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");