0

我必须通过 android 应用程序向 facebook 朋友发送消息。我已经完成了所有功能并尝试了向 facebook 朋友发送消息的代码。但它显示该对话框不适用于此设备的错误。

这是我向 facebook 朋友发送消息的代码:

Facebook facebook = new Facebook(APP_ID);
        Bundle params = new Bundle();
        params.putString("to", Constant.facebookIdBuffer.toString());
        params.putString("name", "Goal Machine");//title
        params.putString("link", Constant.shortAppUrlForAndroid+"\n"+Constant.shortAppUrlForIphone);//message
        facebook.dialog(_activity, "send", params, new DialogListener() {//apprequests
            @Override
            public void onComplete(Bundle values) {
                Constant.facebookIdBuffer=null;
                //postToWall("@"+Constant.facebookIdBuffer.toString()+sendInvite);
            }

            @Override
            public void onFacebookError(FacebookError error) {
                Constant.showAlertDialog("Error", "Can't send ally request!", _activity.getParent(), false);
                Constant.facebookIdBuffer=null;
            }

            @Override
            public void onError(DialogError e) {
                Constant.showAlertDialog("Error", "Can't send ally request!", _activity.getParent(), false);
                Constant.facebookIdBuffer=null;
            }

这是屏幕短显示错误:

在此处输入图像描述

请建议我一种发送带有 Facebook 朋友链接的消息的方法。

4

3 回答 3

0

Send dialogandroid 尚不支持,因此您有 3 个选项:

  • 等待 facebook 为 android 实现对话框。
  • 尝试在移动设备的浏览器中打开对话框(该对话框的 url 在docs中)。
  • 请求xmpp_login许可并添加一个 xmpp 客户端(即:asmack),然后您可以实现自己的“发送消息”对话框。
于 2013-09-04T07:05:30.147 回答
0

如果您想向朋友发送一些消息而不是使用 WebDialog。下面是我使用并且工作正常的代码。

private void sendRequestDialog(String msg, String json) {
        Bundle params = new Bundle();
        params.putString("message", msg);
        params.putString("data", json);
        WebDialog requestsDialog = (new WebDialog.RequestsDialogBuilder(
                context, session, params)).setOnCompleteListener(
                new OnCompleteListener() {

                    @Override
                    public void onComplete(Bundle values,
                            FacebookException error) {

                        if (error != null) {
                            if (error instanceof FacebookOperationCanceledException) {
                                Toast.makeText(context, "Request cancelled",
                                        Toast.LENGTH_SHORT).show();
                            } else {
                                Toast.makeText(context, "Network Error",
                                        Toast.LENGTH_SHORT).show();
                            }
                        } else {
                            final String requestId = values
                                    .getString("request");
                            if (requestId != null) {
                                Toast.makeText(context, "Request sent",
                                        Toast.LENGTH_SHORT).show();
                            } else {
                                Toast.makeText(context, "Request cancelled",
                                        Toast.LENGTH_SHORT).show();
                            }
                        }
                    }

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

这是发送给朋友的消息格式

{
  "id": "493703870648580", 
  "application": {
    "name": "Send Requests How To", 
    "id": "403223126407920"
  }, 
  "to": {
    "name": "Chris Abe Colm", 
    "id": "100003086810435"
  }, 
  "from": {
    "name": "Christine Abernathy", 
    "id": "1424840234"
  }, 
  "data": "{\"badge_of_awesomeness\":\"1\",\"social_karma\":\"5\"}", 
  "message": "Learn how to make your Android apps social", 
  "created_time": "2012-10-07T17:29:57+0000"
}
于 2014-04-25T07:37:31.570 回答
0

您可以使用来自最新 facebook Android sdk 的 MessengerUtils 发送带有附件的消息。

在此处输入图像描述

您可以使用以下 MIME 类型发送附件:

在此处输入图像描述

发送图像的示例代码如下

String mimeType = "image/jpeg";

// contentUri points to the content being shared to Messenger
ShareToMessengerParams shareToMessengerParams =
        ShareToMessengerParams.newBuilder(contentUri, mimeType)
                .build();

// Sharing from an Activity
MessengerUtils.shareToMessenger(
       this,
       REQUEST_CODE_SHARE_TO_MESSENGER,
       shareToMessengerParams);

在此处输入图像描述

更多文档在https://developers.facebook.com/docs/messenger/android

于 2016-09-06T16:32:29.907 回答