当前位置:   article > 正文

ShareSDK Twitter

ShareSDK Twitter

创建应用

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

2.点击Developer Portal进入Twitter后台

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

4.配置应用信息

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

image-20240717101627510

image-20240717101801758

image-20240717102617543

权限申请

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

image-20240718095439148

image-20240717110013372

image-20240718095300221

集成使用

获取配置

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

image-20240718095801651

image-20240718095843954

Android

SDK集成

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

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

  1. MobSDK {
  2. appKey "xxxxxxxxxxxxx"
  3. appSecret "xxxxxxxxxxxxxxxx"
  4. ShareSDK {
  5. devInfo {
  6. Twitter {
  7. appKey "xxxxxxxxxxxxxxxx"
  8. appSecret "xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx"
  9. callbackUri "xxxxxxxxxxxxxxxx"
  10. IsUseV2 true
  11. shareByAppClient true
  12. bypassApproval true
  13. enable true
  14. }
  15. }
  16. }
  17. }

分享示例

代码

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

  1. Platform.ShareParams shareParams = new Platform.ShareParams();
  2. shareParams.setText("测试文本");
  3. shareParams.setImageUrl("http://pic28.photophoto.cn/20130818/0020033143720852_b.jpg");
  4. Platform platform = ShareSDK.getPlatform(Twitter.NAME);
  5. //设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理UI操作)
  6. platform.setPlatformActionListener(new PlatformActionListener() {
  7. public void onError(Platform platform, int arg1, Throwable throwable) {
  8. //失败的回调,arg:平台对象,arg1:表示当前的动作,arg2:异常信息
  9. Log.d("ShareSDK", "onError ----> 分享失败" + throwable.toString());
  10. }
  11. public void onComplete(Platform platform, int arg1, HashMap hashMap) {
  12. //分享成功的回调
  13. Log.d("ShareSDK", "onComplete ----> 分享成功");
  14. }
  15. public void onCancel(Platform platform, int arg1) {
  16. //取消分享的回调
  17. Log.d("ShareSDK", "onCancel ----> 取消分享");
  18. }
  19. });
  20. platform.share(shareParams);
效果图

image-20240718100101745

授权示例

代码
  1. Platform platform = ShareSDK.getPlatform(Twitter.NAME);
  2. platform.setPlatformActionListener(new PlatformActionListener() {
  3. @Override
  4. public void onError(Platform platform, int arg1, Throwable throwable) {
  5. // TODO 返回授权失败错误码
  6. arg2.printStackTrace();
  7. Log.e("ShareSDK","===========================登录失败"+throwable.toString());
  8. }
  9. @Override
  10. public void onComplete(Platform platform, int arg1, HashMap<String, Object> hashMap) {
  11. // TODO 授权成功后获取信息操作等
  12. Log.e("ShareSDK","=========================="+platform.getDb().exportData());
  13. Log.e("ShareSDK","=========================="+hashMap.toString());
  14. }
  15. @Override
  16. public void onCancel(Platform platform, int arg1) {
  17. // TODO 取消回调
  18. Log.e("ShareSDK","===========================登录取消");
  19. }
  20. });
  21. platform.showUser(null);
返回信息示例

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

  1. {
  2. "resume": "null",
  3. "favouriteCount": "null",
  4. "gender": "2",
  5. "icon": "null",
  6. "snsregat": "0",
  7. "snsUserUrl": "https://twitter.com/null",
  8. "userID": "0",
  9. "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  10. "shareCount": "null",
  11. "secretType": "0",
  12. "nickname": "null",
  13. "name": "xxx",
  14. "id": "xxxxxxxxxxxxxxx",
  15. "followerCount": "null",
  16. "username": "xxxxxxxxxxxxxxxxx"
  17. }

iOS

SDK集成

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

配置URL Scheme

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

image-20240718111816045

配置白名单

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

image-20240717114543481

初始化SDK

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

  1. [ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {
  2. [platformsRegister setupTwitterWithKey:@"XXXXXXXXXXX" secret:@"XXXXXXXXXXXXXXXX" redirectUrl:@"XXXXXXXXXXXX"];
  3. }

分享示例

代码

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

  1. #import <ShareSDK/ShareSDK.h>
  2. NSMutableDictionary * shareParams = [NSMutableDictionary dictionary];
  3. [shareParams SSDKSetupShareParamsByText:@"Jshuoh "
  4. images:@"http://download.sdk.mob.com/web/images/2019/07/30/14/1564468183056/750_750_65.12.png"
  5. url: nil
  6. title:@"I'm Not The"
  7. type:SSDKContentTypeImage];
  8. [ShareSDK share:SSDKPlatformTypeTwitter parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {
  9. if (state == SSDKResponseStateSuccess)
  10. {
  11. NSLog(@"分享成功");
  12. }
  13. if (state == SSDKResponseStateFail)
  14. {
  15. NSLog(@"失败----%@",error.description);
  16. }
  17. if (state == SSDKResponseStateCancel)
  18. {
  19. NSLog(@"取消");
  20. }
  21. }];
效果图

image-20240718112636954

授权示例

代码
  1. [ShareSDK authorize:SSDKPlatformTypeTwitter
  2. settings:nil
  3. onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {
  4. if (state == SSDKResponseStateSuccess)
  5. {
  6. NSLog(@"rawData---%@",user.rawData);//用户信息打印
  7. NSLog(@"credential---%@",[user.credential rawData]);//授权信息打印
  8. }
  9. if (state == SSDKResponseStateFail)
  10. {
  11. NSLog(@"%@",error.description);
  12. }
  13. if (state == SSDKResponseStateCancel)
  14. {
  15. NSLog(@"取消");;
  16. }
  17. }];
返回信息示例

user.rawData返回信息为:

  1. {
  2. id = XXXXXXX;
  3. name = XXXXXXX;
  4. username = XXXXXX;
  5. }

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

  1. {
  2. "access_token" = XXXXXXXXXXXXXX;
  3. "expires_in" = 7200;
  4. scope = "tweet.write users.read tweet.read";
  5. "token_type" = bearer;
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/995090
推荐阅读
相关标签
  

闽ICP备14008679号