在Android上成功分享社交媒体后奖励用户?

时间:2017-05-29 09:25:26

标签: java android facebook twitter social-networking

我想知道如何在任何社交媒体上成功(使用按钮在我的应用内)共享后,在我的应用中奖励用户( Facebook,Twitter ,谷歌+ 等。例如,在Twitter SDK中是否有这样的东西?

换句话说,我怎么知道我的应用程序已成功共享?

我已阅读this回答,但没有帮助。

3 个答案:

答案 0 :(得分:4)

  1. 对于 Twitter ,您可以通过用户Twitter Kit Native Composer分享推文,该推文基本上是您开始的活动

    startActivity(intent);
    

    稍后,Twitter将通过共享的结果发布广播,显示它是否成功。更多信息:https://dev.twitter.com/twitterkit/android/compose-tweets

  2. 对于 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段。

  3. 对于 LinkedIn ,您可以从their sdk获得类似于处理网络请求的结果。

  4. 对于 Google + ,您应该检查已启动活动的结果,对于此docs developers.google.com/+/mobile/android/share,您应该调用startActivityForResult,然后您最有可能将结果显示为活动结果Activity.RESULT_OKActivity_RESULT_CANCELED。更多信息:https://developer.android.com/training/basics/intents/result.html

  5. 对于 Reddit ,您可以使用他们的REST API。我发现你可以撰写一篇帖子,例如:https://reddit.com/dev/api/#POST_api_compose,会成功或失败。

  6. FOW WhatsApp 环聊电报 Viber 其他信使你应该使用原生的android方式share,但遗憾的是没有告诉你结果。

答案 1 :(得分:1)

对于twitter

来自Twitter Docs

  

尝试发布推文后,TweetUploadService广播一个Intent,动作值com.twitter.sdk.android.tweetcomposer.UPLOAD_SUCCESS表示成功,com.twitter.sdk.android.tweetcomposer.UPLOAD_FAILURE表示失败。成功时,Intent将包含创建的Tweet的Tweet ID的额外值。失败时,Intent将包含原始意图的副本,可用于重试上载。

您可以创建BroadcastReceiver来接收这些意图。

对于WhatsApp

没有办法。因为WhatsApp Intent允许您只打开whatsapp。它不会触发任何回调动作。

对于Facebook

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>() { ... });
    }

来源:Facebook Documentation

环聊

Google+ Hangouts API Documentation中,我无法找到这样的东西。

旁注

即时消息似乎无法在共享时启动回调操作。

但有些社交媒体应用。

答案 2 :(得分:0)

对于WhatsApp

如上所述,Whatsapp没有此类回调,但在这里您可以做什么。

让用户共享图像和文本,然后可以通过在Whatsapp / Media / Whatsapp Images / Sent文件夹中检查已发送的媒体文件夹来进行验证。

但是您需要存储权限。