分享到Android的Facebook(如Twitter)

任何试图通过Android分享到Facebook的人都知道,Facebook团队已经决定忽略共享协议,并忽略共享意图中提供的文本(请参阅: 通过ACTION_SEND在Android App上分享Facebook上的文本 )

但是,似乎Twitter应用程序已经find了如何绕过这个。 当你在看tweet时:

Twitter视图

你可以点击推特下面的分享图标,它会打开正常的分享对话框,其中包括Facebook的应用程序列表:

所有的共享图标,包括决定搞砸Android开发者的Facebook

如果你点击Facebook,你会得到这个观点:

该死的你脸书。该死的你。

这看起来很完美,显然Twitter不仅仅是发送其他答案似乎提出的链接。 而且,如果你分享消息:

好的旧消息应用程序。 F___脸书

你可以看到文本被正确添加,没有问题。 是如何得到这个工作的?

Related of "分享到Android的Facebook(如Twitter)"

如果您问的是如何在从其他应用程序共享Facebook链接时包含预填充文本,这实际上直接违背了Facebook的政策 –

“确保用户信息参数中的所有内容都是由用户input的,不要预先填写,包括post,消息,注释和标题。 ( https://developers.facebook.com/policy/

我做了什么来解决这个问题是有点讨厌,但有用,

复制剪贴板中要共享的文本

吐司消息“粘贴文本”,

复制到剪贴板

@SuppressLint("NewApi") private void copyToClipBoard(String data) { int sdk = android.os.Build.VERSION.SDK_INT; if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB) { android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); clipboard.setText(data); Toast.makeText(context,"Paste text", Toast.LENGTH_SHORT).show(); } else { android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); android.content.ClipData clip = android.content.ClipData.newPlainText(type,data); clipboard.setPrimaryClip(clip); Toast.makeText(context, "Paste text", Toast.LENGTH_SHORT).show(); } } 

你可以使用Facebook SDK执行这样的。

只是为了解决这个问题,我相信在这个例子中,Twitter的工作方式是基于所提供URL中的元数据。 这是一个很好的起点: https : //developers.facebook.com/docs/sharing/best-practices#tags