【问题标题】:How to send app invitaion to facebook friends (Non Game App).?如何向 Facebook 好友发送应用邀请(非游戏应用)。?
【发布时间】:2015-01-03 03:19:54
【问题描述】:
  1. 我已经列出了 facebook 好友并发送了应用邀请(来自 facebook 发送请求对话框)! 我的问题是我可以在不使用 facebook 发送请求对话框的情况下发送请求吗?如果可以,如何? 如果我不向(WebRequestDialog).setTo(“用逗号分隔的朋友的ID”)提供ID,我的代码如下,那么我无法发送请求,但如果我提供朋友的ID,则Facebook本机对话框发送请求打开并成功发送请求。

facebookFriendsDetail 是我从可标记朋友 api 获得的可标记朋友列表。

Bundle params = new Bundle();
            StringBuilder sb = new StringBuilder();

            int USE_FRIEND_SIZE;
            if(facebookFriendsDetail.size()>49)
            {
                USE_FRIEND_SIZE=49;
            }else
            {
                USE_FRIEND_SIZE=facebookFriendsDetail.size();
            }

            for (int i = 0; i < USE_FRIEND_SIZE; i++) {

                if (i == 0) {
                    sb.append(facebookFriendsDetail.get(i).getId().toString());
                } else {
                    sb.append(","
                            + facebookFriendsDetail.get(i).getId().toString());
                }

            }
            // params.putString("to", sb.toString());
            params.putString("message",
                    "Join CConnect To feel Better Experience Of Meetings And Calls");

            WebDialog requestsDialog = (new WebDialog.RequestsDialogBuilder(
                    getActivity(), Session.getActiveSession(), params))
                    .setTheme(
                            android.R.style.Theme_Translucent_NoTitleBar_Fullscreen).setTo(sb.toString())
                    .setOnCompleteListener(new OnCompleteListener() {

                        @Override
                        public void onComplete(Bundle values,
                                FacebookException error) {
                            if (error != null) {
                                if (error instanceof FacebookOperationCanceledException) {
                                    Toast.makeText(
                                            getActivity()
                                                    .getApplicationContext(),
                                            "Request cancelled",
                                            Toast.LENGTH_SHORT).show();
                                } else {
                                    Toast.makeText(
                                            getActivity()
                                                    .getApplicationContext(),
                                            "Network Error", Toast.LENGTH_SHORT)
                                            .show();
                                }
                            } else {
                                final String requestId = values
                                        .getString("request");
                                if (requestId != null) {
                                    Toast.makeText(
                                            getActivity()
                                                    .getApplicationContext(),
                                            "Request sent", Toast.LENGTH_SHORT)
                                            .show();
                                } else {
                                    Toast.makeText(
                                            getActivity()
                                                    .getApplicationContext(),
                                            "Request cancelled",
                                            Toast.LENGTH_SHORT).show();
                                }
                            }
                        }

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

2.我的应用程序不是游戏应用程序,我强行添加了一个画布框架,之后我能够发送应用程序请求,现在我的问题是重定向如何在这里工作,我想如果有人在 facebook 中打开此请求通知如果安装了移动应用程序,它会将其重定向到我的应用程序,如果没有将其重定向到 Playstore 链接。

对于网络应用,我希望它重定向到我在 facebook 中创建的应用页面。

【问题讨论】:

    标签: android facebook facebook-graph-api


    【解决方案1】:

    事实上,Facebook API 当前存在一个关于非游戏画布应用的网络邀请的漏洞。从 v 2.2 到 v 2.3 的 Facebook API 更改日志指出,打开请求对话框的 apprequests 功能现在仅限于游戏,非游戏应用应使用 App Invites。但是,App Invites 仅适用于 iOS 和 Android。 因此,目前,用户无法通过网络邀请朋友加入非游戏画布应用程序,除非使用发送对话框,这是一种糟糕的用户体验,不应该用于此目的。 我已经向 Facebook 提交了错误报告,他们承认这是一个有效的错误。让我们希望他们尽快修复它。

    https://developers.facebook.com/bugs/895531977178531

    【讨论】:

      【解决方案2】:

      taggable_friends 用于标记朋友,而不是邀请他们。您只会获得带有该标记的标记,而不是用户 ID,这可能是它不起作用的原因。

      用于邀请,有invitable_friends。请务必仔细阅读文档:

      Invitable Friends API 仅适用于归类为游戏的应用程序,这些应用程序也具有 Canvas。此 API 在 v1.0 中不可用。只要手机游戏也存在 Canvas,它就可以被调用。

      顺便说一句,例如,在非游戏的 Android 应用中邀请朋友的推荐方式是发送/共享对话框。这部分文档可能会让您感兴趣:https://developers.facebook.com/docs/sharing/best-practices#sharingmobile

      【讨论】:

      • 是的,我在可标记朋友 api 中获得了用户的加密 ID,这就是它出错的原因。有没有办法在不发送共享对话框的情况下发送邀请。因为我使用了发送共享对话框,而我的客户不需要这个。
      • 您可以尝试使用 invitable_friends,但正如文档中所写,它适用于游戏。不过,您可以直接调用应用请求对话框,而无需使用任何用户 ID。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      相关资源
      最近更新 更多