Facebook Messenger发送元数据(Android)

Facebook Messenger发送元数据(Android),android,html,arrays,facebook-messenger,Android,Html,Arrays,Facebook Messenger,我下面创建一个应用程序,将图像发送到Facebook messenger String mimeType = "image/png"; Uri contentUri = Uri.parse("android.resource://com.test.test/drawable/foobar"); String metadata = "{ \"name\": \"baz\" }"; ShareToM

我下面创建一个应用程序,将图像发送到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自己的示例代码几乎相同。图像被正确地发送到messenger,messenger识别我的应用程序进行优化,并提供回复按钮。但是,我在发送元数据时遇到问题。当按下回复按钮时,应该在额外捆绑包中的所有内容(
extra_是回复
extra_线程_令牌
extra_参与者
)都会发送回应用程序,但不会发送回元数据。任何帮助都将不胜感激

下面是清单中的一个片段:

    <!-- 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>


好的,下面是解决同样问题的方法

如果一个应用程序多次向Facebook Messenger发布同一个图像,Messenger会将第一个图像以外的所有图像视为重复图像,并且不会附加元数据。(最终会有一个超时,但不关心确切的持续时间)


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

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

获取元数据时会得到什么?你有一个如何获取它的代码示例吗?我想我已经找到了解决方案,并在下面发布了答案。我面临着同样的问题。我无法在我的应用程序中获取元数据。Facebook应用程序是否需要批准才能使用此功能?这并不是问题的答案。是的,这应该是一条评论。无论如何,谢谢你的确认。是的,我只是想提高投票率,但我对这一点非常陌生,我没有代表。我面临着同样的问题。我无法在我的应用程序中获取元数据。Facebook应用程序是否需要批准才能使用此功能?@SumithourAsia我认为基本功能集的使用不需要批准。我建议先运行SDK中包含的Facebook示例应用程序,看看是否有效。谢谢@DanielK,这节省了很多时间!