ShareSDK Twitter
创建应用
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 trueshareByAppClient truebypassApproval trueenable 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() {@Overridepublic void onError(Platform platform, int arg1, Throwable throwable) {// TODO 返回授权失败错误码arg2.printStackTrace();Log.e("ShareSDK","===========================登录失败"+throwable.toString());}@Overridepublic void onComplete(Platform platform, int arg1, HashMap<String, Object> hashMap) {// TODO 授权成功后获取信息操作等Log.e("ShareSDK","=========================="+platform.getDb().exportData());Log.e("ShareSDK","=========================="+hashMap.toString());}@Overridepublic 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: niltitle:@"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:SSDKPlatformTypeTwittersettings:nilonStateChanged:^(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;相关文章:
ShareSDK Twitter
创建应用 1.登录Twitter控制台并通过认证 2.点击Developer Portal进入Twitter后台 3.点击Sign up for Free Account创建应用 4.配置应用信息 以下为创建过程示例,图中信息仅为示例,创建时请按照真实信息填写,否则无法正常使用。 权限申请…...
word2vec 如何用多个词表示一个句子
word2vec 模型通常用于将单词映射为固定大小的向量。为了使用多个词表示一个句子,我们可以采用以下几种方法: 词袋模型 (Bag of Words, BoW): 将句子中所有词的向量加起来,不考虑词的顺序。这种方法简单,但会丢失词序信息。 计算…...
IDEA中查看接口的所有实现类和具体实现类
1.IDEA中接口的所有实现类查看 1.CTRLH(hierarchy 结构) 我们选中要查看的接口 按住快捷键ctrlh 在界面右侧可以看到该接口的所有可能实现类 2.右击diagrams->show diagram 选中要查看的接口 右击选择diagrams->show diagram 即可以以图表的方式查看接口和所有实现类…...
DLL的导出和调用
动态链接库在C中非常重要,写了一个简单的例子用于DLL的导出和调用。 DLL的生成 头文件 #include<iostream> #include<stdexcept> using namespace std;#define TESTAPI __declspec(dllexport)// 函数定义 extern "C" {TESTAPI int add(in…...
vscode中调试cuda kernel
关于vscode中调试cpp可参考之前的博客:ubuntu vscode 基本设置 和 调试设置_ubuntu vscode 调试-CSDN博客 这篇我们来讲如何调试.cu的kernel,主要参考的是:https://www.zhihu.com/question/431782036/answer/2468791220 1、基本准备不多说&am…...
SQL的连接查询与pandas的对应关系
在SQL和Pandas中,连接查询(join)是处理数据集之间关系的重要工具。下面是SQL中的各种连接查询类型及其与Pandas中相应操作的对应关系: 1. INNER JOIN SQL: INNER JOIN 返回两个表中具有匹配值的行。 Pandas: merge() 方法的 how…...
【JS】中断和恢复任务序列
前言 封装processTasks函数,实现以下需求 /*** 依次顺序执行一系列任务* 所有任务全部完成后可以得到每个任务的执行结果* 需要返回两个方法,start用于启动任务,pause用于暂停任务* 每个任务具有原子性,即不可中断,只…...
CentOS系统下安装NVIDIA显卡驱动
一、安装显卡驱动 1.安装依赖项 yum -y install gcc pciutils yum -y install gcc yum -y install gcc-c yum -y install make2.查看内核版本 uname -a3.查看显卡版本 lspci | grep -i nvidia4.屏蔽系统自带的nouveau (1)查看nouveau lsmod | grep nouveau (2)打开blackl…...
Linux 与 Windows 服务器操作系统 | 全面对比
在服务器操作系统的领域,Linux 和 Windows 一直是两个备受关注的选择。 首先来看 Windows 操作系统。它由 Microsoft Corporation 开发,在桌面领域占据显著份额,其中 Windows 10 是使用最广泛的版本,广泛应用于个人计算机和企业桌…...
给既有exe程序添加一机一码验证
原文地址:李浩的博客 lihaohello.top 本科期间开发过一款混凝土基本构件设计程序,该程序是一个独立的exe可执行文件,采用VC静态链接MFC库编制而成。近期,需要为该程序添加用户注册验证的功能,从而避免任何用户获取该程…...
【Datawhale X 魔搭 】AI夏令营第四期大模型方向,Task2:头脑风暴会,巧灵脑筋急转弯(持续更新)
队伍名称:巧灵脑筋急转弯 队伍技术栈:python,LLM,RAG,大模型,nlp,Gradio,Vue,java 队友:知唐(队长),我真的敲不动…...
mysql 多个外键
在MySQL中,一个表可以有多个外键约束,它们分别关联到不同的主表。在创建表时,可以在每个外键约束上指定不同的外键名称。以下是一个简单的例子,演示如何在创建表时定义多个外键: CREATE TABLE orders (order_id INT AU…...
解决方案上新了丨趋动科技推出基于银河麒麟操作系统的异构算力池化解决方案
趋动科技携手麒麟软件打造基于银河麒麟操作系统的异构算力池化解决方案,共同探索AI领域新场景。 人工智能技术作为数字经济发展的重要推手,在各行业业务场景中落地需要大量AI算力资源的有效保障。在IT基础设施普遍云化的今天,AI算力一方面需…...
14.创建一个实战maven的springboot项目
项目核心主要部分 pom.xml文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://mave…...
docker部署LNMP
docker部署LNMP nginx 1.22 172.111.0.10 docker-nginx mysql 8.0.30 172.111.0.20 docker-mysql php 8.1.27 172.111.0.30 docker-php docker:单节点部署,只能在一台机器上部署,如果跨机器容器无法操作,无法通信。 做高可用…...
在Spring Boot应用中,如果你希望在访问应用时加上项目的名称或者一个特定的路径前缀
在Spring Boot应用中,如果你希望在访问应用时加上项目的名称或者一个特定的路径前缀 在Spring Boot应用中,如果你希望在访问应用时加上项目的名称或者一个特定的路径前缀,你可以通过配置server.servlet.context-path属性来实现。这通常在app…...
东南大学:Wi-Fi 6搭档全光以太,打造“数智东南”信息高速路
东南大学:Wi-Fi 6搭档全光以太,打造“数智东南”信息高速路 - 华为企业业务 打好ICT底座,平台和应用层面就会非常通畅了。首先,出海企业的需求既有普遍性,也有垂直性行业的特性需求。普遍性需求需要通信、沟通数据和传…...
C++:stack类(vector和list优缺点、deque)
目录 前言 数据结构 deque vector和list的优缺点 push pop top size empty 完整代码 前言 stack类就是数据结构中的栈 C数据结构:栈-CSDN博客 stack类所拥有的函数相比与string、vector和list类都少很多,这是因为栈这个数据结构是后进先出的…...
负载均衡、高可用
负载均衡 负载均衡(Load Balance):可以利用多个计算机和组合进行海量请求处理,从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常…...
从Retrofit支持suspend协程请求说开去
在现代Android开发中,异步请求已经成为不可或缺的一部分。传统的异步请求往往涉及大量的回调逻辑,使代码难以维护和调试。随着Kotlin协程的引入,异步编程得到了极大的简化。而作为最流行的网络请求库之一,Retrofit早在Kotlin协程的…...
OpenClaw密码管理:nanobot安全存储与自动填充方案
OpenClaw密码管理:nanobot安全存储与自动填充方案 1. 为什么需要本地化的密码管理方案 去年的一次数据泄露事件让我彻底放弃了所有云端密码管理器。当时我使用的某知名商业工具突然弹出安全警报,提示"您的部分密码可能已被未授权访问"。虽然…...
合宙 MCP 工具:TRAE AI 自然语言控制 Luatools 实操
合宙MCP工具基于 MCP 协议,实现 AI 大模型与 Luatools 的无缝连接,开发者通过简单 JSON 配置,就能在 TRAE 编辑器用自然语言操控 Luatools 完成固件下载、日志获取等操作,告别手动烧录的繁琐。 核心能力: 固件自动烧录…...
嵌入式开发核心技术:内存管理与中断处理详解
嵌入式实习岗位面试技术要点解析1. 内存管理基础1.1 C/C内存分配机制在嵌入式系统中,内存分配主要涉及以下几个区域:栈(Stack):用于存储局部变量、函数参数和返回地址,由编译器自动分配和释放堆(Heap):通过malloc/free…...
从拼图游戏到自动驾驶:点云配准技术的跨领域进化史
从拼图游戏到自动驾驶:点云配准技术的跨领域进化史 1. 三维世界的数字拼图师 1987年,当Paul Besl和Neil McKay在实验室里尝试将两组扫描数据对齐时,他们可能不会想到,这项被称为迭代最近点(ICP)的技术会成为…...
软件测试生命周期全解析:用考试答题逻辑,零基础吃透测试核心
之前我们用考场答题的类比,轻松搞懂了软件开发生命周期,很多初学者恍然大悟:原来编程就是一场有章法的“考试”。但一场考试能不能拿到高分、能不能符合出题人(客户)的要求,光靠埋头答题(开发编…...
能源监控项目避坑指南:为什么DLT645电表直连Modbus系统会失败?
能源监控项目避坑指南:为什么DLT645电表直连Modbus系统会失败? 在智慧能源项目的实施过程中,数据采集的可靠性直接关系到整个系统的运行效果。许多项目团队在遇到DLT645规约电表与Modbus系统对接时,往往会尝试直接连接,…...
ZephyrOS--实战Bluetooth LE心率监测
1. 从零开始搭建ZephyrOS开发环境 第一次接触ZephyrOS时,我花了整整两天时间才把开发环境搭好。现在回想起来,其实只要掌握几个关键步骤就能避开那些坑。这里我以nRF52开发板为例,带你快速搭建起心率监测项目的开发环境。 首先需要安装Zephyr…...
终极LxgwWenKai字体配置指南:如何为VSCode和IDEA打造完美中文编程体验
终极LxgwWenKai字体配置指南:如何为VSCode和IDEA打造完美中文编程体验 【免费下载链接】LxgwWenKai LxgwWenKai: 这是一个开源的中文字体项目,提供了多种版本的字体文件,适用于不同的使用场景,包括屏幕阅读、轻便版、GB规范字形和…...
VSCode里藏着的绘图神器:Live Preview搭配Mermaid插件,边写代码边出图真香了
VSCode绘图革命:用Mermaid实现代码与图表无缝协同 在IDE里切换窗口查看流程图的日子该结束了。作为每天与代码打交道的开发者,我们早已厌倦了在Visio、ProcessOn和代码编辑器之间反复横跳的繁琐操作。Mermaid语法配合VSCode的实时预览功能,正…...
OpenClaw+Qwen3-32B科研助手:文献综述自动生成与参考文献整理
OpenClawQwen3-32B科研助手:文献综述自动生成与参考文献整理 1. 为什么需要AI科研助手? 作为一名计算机专业的研究生,我每天要处理大量文献。最痛苦的时刻莫过于导师突然说"下周组会做个文献综述",而我手头只有几十篇…...
