1

我正在按照本指南创建一个将图像发送到 Facebook Messenger 的应用程序。

String mimeType = "image/png";
Uri contentUri = Uri.parse("android.resource://com.test.test/drawable/foobar");

String metadata = "{ \"name\": \"baz\" }";
ShareToMessengerParams params = ShareToMessengerParams.newBuilder(contentUri, mimeType).setMetaData(metadata).build();
MessengerUtils.shareToMessenger(this, REQUEST_CODE_SHARE_TO_MESSENGER, params);

该代码非常简单,几乎与 Facebook 自己的示例代码相同。图像已正确发送到识别我的应用程序进行优化并提供回复按钮的信使。但是,我无法发送元数据。当按下 REPLY 按钮时,应该在额外包 ( EXTRA_IS_REPLY, EXTRA_THREAD_TOKEN, EXTRA_PARTICIPANTS) 中的所有内容都会被发送回应用程序,但不会发送回元数据。任何帮助将不胜感激。

下面是清单的一个片段:

    <!-- Activities -->
    <activity
        android:name=".MainActivity"
        android:windowSoftInputMode="stateHidden"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.PICK" />
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="com.facebook.orca.category.PLATFORM_THREAD_20150311"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.PICK" />
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="com.facebook.orca.category.PLATFORM_THREAD_20150314"/>
        </intent-filter>
    </activity>

在此处输入图像描述

4

2 回答 2

3

好的,对于那些有同样问题的人来说,这是解决方法。

如果应用程序多次向 Facebook Messenger 发布同一张图片,则 Messenger 会将除第一张图片之外的所有图片视为重复图片,并且不会附加元数据。(最终会超时,但不在乎弄清楚确切的持续时间)

我的解决方法如下:每次你的应用程序发布到信使时,让它在随机位置放置一个随机像素,以确保图像的签名发生变化。我没有尝试过,但我认为更改像素的 alpha 值会更好地减少用户对它的显眼。

于 2015-06-22T21:42:26.513 回答
0

是的,我可以确认每次使用不同的图像确实可以解决此问题。

于 2015-06-23T18:48:57.787 回答