写点什么

ShareSDK Twitter

  • 2024-08-16
    上海
  • 本文字数:3040 字

    阅读完需:约 10 分钟

创建应用

1.登录Twitter控制台并通过认证

2.点击 Developer Portal 进入 Twitter 后台

3.点击 Sign up for Free Account 创建应用

4.配置应用信息

以下为创建过程示例图中信息仅为示例,创建时请按照真实信息填写,否则无法正常使用





权限申请

Twitter 分享和授权需要申请权限,以及配置回调地址





集成使用

获取配置

客户端在使用 Twitter 平台之前,需要先获取 Twitter 为应用分发的 Client ID、Client Secret、Callback URI / Redirect URL。




Android

SDK 集成

在集成 Twitter 相关能力之前,请先按照ShareSDK集成指南完成 ShareSDK 的集成

appKey 的值对应 Twitter 平台的 Client ID,appSecret 的值对应 Twitter 平台的 Client Secret,callbackUri 的值对应 Twitter 平台的 Callback URI / Redirect URL

MobSDK {    appKey "xxxxxxxxxxxxx"    appSecret "xxxxxxxxxxxxxxxx"    ShareSDK {        devInfo {            Twitter {                appKey "xxxxxxxxxxxxxxxx"                appSecret "xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx"                callbackUri "xxxxxxxxxxxxxxxx"                IsUseV2 true                shareByAppClient true                bypassApproval true                enable true            }         }    }}
复制代码

分享示例

代码

以下代码示例分享图片和文字至 Twitter

Platform.ShareParams shareParams = new Platform.ShareParams();shareParams.setText("测试文本");shareParams.setImageUrl("http://pic28.photophoto.cn/20130818/0020033143720852_b.jpg");Platform platform =  ShareSDK.getPlatform(Twitter.NAME);              //设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理UI操作)platform.setPlatformActionListener(new PlatformActionListener() {    public void onError(Platform platform, int arg1, Throwable throwable) {        //失败的回调,arg:平台对象,arg1:表示当前的动作,arg2:异常信息        Log.d("ShareSDK", "onError ---->  分享失败" + throwable.toString());    }    public void onComplete(Platform platform, int arg1, HashMap hashMap) {        //分享成功的回调        Log.d("ShareSDK", "onComplete ---->  分享成功");    }    public void onCancel(Platform platform, int arg1) {        //取消分享的回调        Log.d("ShareSDK", "onCancel ---->  取消分享");    }});platform.share(shareParams);
复制代码

效果图



授权示例

代码

Platform platform = ShareSDK.getPlatform(Twitter.NAME);platform.setPlatformActionListener(new PlatformActionListener() {    @Override    public void onError(Platform platform, int arg1, Throwable throwable) {        // TODO 返回授权失败错误码        arg2.printStackTrace();        Log.e("ShareSDK","===========================登录失败"+throwable.toString());    }    @Override    public void onComplete(Platform platform, int arg1, HashMap<String, Object> hashMap) {        // TODO 授权成功后获取信息操作等        Log.e("ShareSDK","=========================="+platform.getDb().exportData());        Log.e("ShareSDK","=========================="+hashMap.toString());    }    @Override    public void onCancel(Platform platform, int arg1) {        // TODO 取消回调        Log.e("ShareSDK","===========================登录取消");    }});platform.showUser(null);
复制代码

返回信息示例

在 ShareSDK 成功回调中调用 platform.getDb().exportData(),将返回以下信息

{    "resume": "null",    "favouriteCount": "null",    "gender": "2",    "icon": "null",    "snsregat": "0",    "snsUserUrl": "https://twitter.com/null",    "userID": "0",    "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",    "shareCount": "null",    "secretType": "0",    "nickname": "null",    "name": "xxx",    "id": "xxxxxxxxxxxxxxx",    "followerCount": "null",    "username": "xxxxxxxxxxxxxxxxx"}
复制代码

iOS

SDK 集成

在集成微博相关能力之前,请先按照ShareSDK集成指南完成 ShareSDK 的集成。

配置 URL Scheme

打开项目的 Info 选项,然后选择 URL Types,添加 URL Scheme 配置 twitterkit-Twitter的ClientID,例如:twitterkit-xxxxxxxxxxxxxxx



配置白名单

(1)在项目的 info.plist 中添加 Queried URL Schemes,类型为 Array(2)添加一个需要支持的项目,类型为字符串类型,twitter 需要添加的白名单为 twitterauth



初始化 SDK

在使用 Twitter 能力之前,需要先对其初始化,其中 setupTwitterWithKey 的值对应 Twitter 平台中的 Client ID,secret 对应 Twitter 平台中的 Client Secret,redirectUrl 对应 Twitter 平台中的 Callback URI / Redirect URL

[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {     [platformsRegister setupTwitterWithKey:@"XXXXXXXXXXX" secret:@"XXXXXXXXXXXXXXXX" redirectUrl:@"XXXXXXXXXXXX"];}
复制代码

分享示例

代码

以下代码示例分享图片至 Twitter

#import <ShareSDK/ShareSDK.h>NSMutableDictionary * shareParams = [NSMutableDictionary dictionary];[shareParams SSDKSetupShareParamsByText:@"Jshuoh "                                 images:@"http://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png"                                    url: nil                                  title:@"I'm Not The"                                   type:SSDKContentTypeImage];[ShareSDK share:SSDKPlatformTypeTwitter parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {        if (state == SSDKResponseStateSuccess)        {            NSLog(@"分享成功");        }        if (state == SSDKResponseStateFail)        {            NSLog(@"失败----%@",error.description);        }        if (state == SSDKResponseStateCancel)        {            NSLog(@"取消");        }  }];      
复制代码

效果图



授权示例

代码

[ShareSDK authorize:SSDKPlatformTypeTwitter           settings:nil     onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {        if (state == SSDKResponseStateSuccess)        {            NSLog(@"rawData---%@",user.rawData);//用户信息打印            NSLog(@"credential---%@",[user.credential rawData]);//授权信息打印        }        if (state == SSDKResponseStateFail)        {            NSLog(@"%@",error.description);        }        if (state == SSDKResponseStateCancel)        {            NSLog(@"取消");;        }}];
复制代码

返回信息示例

user.rawData 返回信息为:

{    id = XXXXXXX;    name = XXXXXXX;    username = XXXXXX;}
复制代码

[user.credential rawData]返回信息为:

{    "access_token" = XXXXXXXXXXXXXX;    "expires_in" = 7200;    scope = "tweet.write users.read tweet.read";    "token_type" = bearer;
复制代码


用户头像

还未添加个人签名 2019-05-08 加入

还未添加个人简介

评论

发布
暂无评论
ShareSDK Twitter_开发者_MobTech袤博科技_InfoQ写作社区