我想知道如何在任何社交媒体上成功(使用按钮在我的应用内)共享后,在我的应用中奖励用户( Facebook,Twitter ,谷歌+ 等。例如,在Twitter SDK中是否有这样的东西?
换句话说,我怎么知道我的应用程序已成功共享?
我已阅读this回答,但没有帮助。
答案 0 :(得分:4)
对于 Twitter ,您可以通过用户Twitter Kit Native Composer
分享推文,该推文基本上是您开始的活动
startActivity(intent);
稍后,Twitter将通过共享的结果发布广播,显示它是否成功。更多信息:https://dev.twitter.com/twitterkit/android/compose-tweets
对于 Facebook ,您也可以获得共享状态,当您显示共享对话框时,您可以提供回调,通知您共享的成功。
public class MainActivity extends FragmentActivity {
CallbackManager callbackManager;
ShareDialog shareDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
// Here you'll get sharing status
});
}
更多信息:https://developers.facebook.com/docs/sharing/android?locale=en_US,请查看Share Dialog
段。
对于 LinkedIn ,您可以从their sdk获得类似于处理网络请求的结果。
对于 Google + ,您应该检查已启动活动的结果,对于此docs developers.google.com/+/mobile/android/share,您应该调用startActivityForResult,然后您最有可能将结果显示为活动结果Activity.RESULT_OK
或Activity_RESULT_CANCELED
。更多信息:https://developer.android.com/training/basics/intents/result.html
对于 Reddit ,您可以使用他们的REST API。我发现你可以撰写一篇帖子,例如:https://reddit.com/dev/api/#POST_api_compose,会成功或失败。
FOW WhatsApp ,环聊,电报, Viber ,行和其他信使你应该使用原生的android方式share,但遗憾的是没有告诉你结果。
答案 1 :(得分:1)
尝试发布推文后,
TweetUploadService
广播一个Intent,动作值com.twitter.sdk.android.tweetcomposer.UPLOAD_SUCCESS
表示成功,com.twitter.sdk.android.tweetcomposer.UPLOAD_FAILURE
表示失败。成功时,Intent将包含创建的Tweet的Tweet ID
的额外值。失败时,Intent将包含原始意图的副本,可用于重试上载。
您可以创建BroadcastReceiver
来接收这些意图。
没有办法。因为WhatsApp Intent允许您只打开whatsapp。它不会触发任何回调动作。
Facebook允许您在应用中注册回调管理器。
示例代码
public class MainActivity extends FragmentActivity {
CallbackManager callbackManager;
ShareDialog shareDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
// this part is optional
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { ... });
}
在Google+ Hangouts API Documentation中,我无法找到这样的东西。
即时消息似乎无法在共享时启动回调操作。
但有些社交媒体应用。
答案 2 :(得分:0)
对于WhatsApp
如上所述,Whatsapp没有此类回调,但在这里您可以做什么。
让用户共享图像和文本,然后可以通过在Whatsapp / Media / Whatsapp Images / Sent文件夹中检查已发送的媒体文件夹来进行验证。
但是您需要存储权限。