使用新浪微博开放平台api同步微博内容至自己网站(ReadMe仓库停止服务.8.0修复bug.v10.8.1)
优采云 发布时间: 2022-03-25 03:04使用新浪微博开放平台api同步微博内容至自己网站(ReadMe仓库停止服务.8.0修复bug.v10.8.1)
自述文件
公告:
针对Jcenter仓库的宕机问题,我们重新提供了基于MavenCentral仓库的依赖方法并更新了SDK版本
SDK v11.8.1 文档
在项目根目录下的build.gradle文件中添加依赖配置
allprojects {
repositories {
mavenCentral()
……
}
}
在模块的 build.gradle 文件中添加依赖和属性配置
android {
……
defaultConfig {
ndk {
abiFilters 'armeabi' //, 'armeabi-v7a','arm64-v8a'
}
}
}
dependencies {
implementation 'io.github.sinaweibosdk:core:11.8.1@aar'
}
文件地址:文件
新包裹地址:
旧包地址:新版本和文档
v11.8.1
修复部分场景下分享后回调结果无法正确返回的问题。
v11.6.0
修复崩溃。新增超级聊天分享功能(需要与微博协商获得白名单权限才能开发此功能,否则分享无效)
v10.10.0
适配Android 11,支持通过FileProvider分享。
v10.9.0
修复可能的安全问题。
v10.8.0
修复错误。
v10.7.0
20年来的第一个版本,基于v9.12.0的升级。主要解决9.12.0版本的bug.3。v4.xx版本系列不再维护,建议升级。具体访问方法在2019 SDK目录下有文档。如果您在访问过程中遇到问题,请及时联系我解决。()
2019年底,微博SDK版本v9.12.0全新更新:
1.新的SDK接入文档解决了同学们接入时没有详细文档的痛点。
2.新的 SDK API 设计。
3.全新的SDK Demo,支持傻瓜式访问。
4.aar 包瘦身并删除无用代码。
当心:
1.新版本的API发生了变化。如果要升级到最新版本,需要按照文档一步步升级。
2.新版本位置:2019SDK。
3.如果您在新版本的访问中遇到问题,请及时联系我,我看到会及时回复您。( )
数据的下载入口在这个网页的右侧,有一个下载-ZIP按钮,可以本地下载。↗↗
为了方便第三方开发者快速集成微博SDK,我们提供以下*敏*感*词*协助开发者进行集成:
QQ群:248982250
QQ群:284084420
QQ群:109094998 邮箱:
微博:新的移动技术
虽然我们提供了几份文件,但总有不满意的地方。为了快速上手,少走弯路,我们建议您使用以下方法来了解和集成微博SDK。
如果您在使用过程中不知道如何解决一些问题,请仔细阅读:常见问题FAQ,并尝试找到相应的答案。
另外,关于SDK的bug反馈、用户体验、建议和不足,请尽量提交到Github,充分利用Github这个工具。目前,SDK有很多不足之处。请给我们一些时间。我们将努力为第三方开发者提供标准化、易用、稳定、可靠、可扩展、可定制的SDK。
发行说明:Android SDK V4.1 版本更改:
v4.4.4
1.去除异常打印堆栈信息。(如果没有包注册获取新版本(待加入白名单),请联系QQ(879073159))
v4.4.3
1.解决空指针异常。(如果没有包注册获取新版本(待加入白名单),请联系QQ(879073159))
v4.4.2
1.修复恶意启动可能导致的崩溃。(如果没有包注册获取新版本(加入白名单),请联系QQ(879073159))
v4.4.1
1.默认支持armeabi、arm64-v8a、armeabi-v7a架构。
2.修改无法获取权限时可能导致的异常。(如果没有包注册获取新版本(待加入白名单),请联系QQ(879073159))
v4.4.0
1.默认支持 armeabi、arm64-v8a 两种架构。
2.修复分享时横竖屏切换导致的异常。
3.修复其他bug(如果没有包注册获取新版本(加入白名单),请联系QQ(879073159))
4.4.3.8 已经报过的,以后不用报了。
v4.3.9
1.修复了分享中遇到的一些bug。(如果没有包注册获取新版本(待加入白名单),请联系QQ(879073159))
v4.3.8
1.修复部分bug2.默认只支持armeabi架构3.使用4.3.8时请联系客服进行包注册。联系QQ(879073159)
v4.3.7
1.错误修复
2.添加64位所以
v4.3.6
1.错误修复
v4.3.5
1.修复Android4.4.4以下版本分享后无回调。
v4.3.4
1.错误修复
v4.3.11.修复bug2.关于分享后的回调,4.3.0开始接受如下方式:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
shareHandler.doResultIntent(data,this);
}
v4.3.01.修复bug
v4.2.71.支持微博速成版授权登录
v4.11.修复一些已知bug2.支持多图分享和视频分享3.支持分享视频到微博故事
v4.01.新的授权和分享逻辑,让你的访问更加明确2.修复了一些已知问题
v3.2
新网页授权和共享移除open api相关文档,如果还想继续使用open api,请参考旧版本目录【旧版本相关/demo-src】访问,维护和移除LinkCard模式共享,目前仅支持文字与图片混合(我们不建议您继续使用旧的sdk访问微博进行LinkCard共享,微博客户端将来可能会取消此功能,这可能会导致您的程序异常)删除微博支付功能并简化sdk , 解决已知错误的快速入门概述
微博安卓平台SDK为第三方应用提供简单易用的微博API调用服务,使第三方客户端无需了解复杂的验证机制即可进行授权登录,并提供微博分享功能,可直接通过微博访问。官方客户端分享微博。
本文档详情请参考:微博Android平台SDK文档V4.1.pdf
名词解释名词注释
应用密钥
分配给每个第三方应用程序的应用程序密钥。用于身份验证、显示来源等功能。
重定向URI
第三方应用授权回调页面。推荐使用默认回调页面,可以在新浪微博开放平台->我的应用->应用信息->高级应用->授权设置->应用回调页面找到。
范围
通过范围,平台将向开发者开放更多微博核心功能,同时加强用户隐私保护,提升用户体验。用户有权在新的 OAuth2.0 授权页面上选择分配给应用程序的功能。
访问令牌
代表用户身份的令牌,用于微博API调用。
网页授权
通过WebView授权,返回Token信息。
SSO 授权
通过调用微博客户端授权并返回Token信息。
使用微博sdk授权分享时,请确保您的A*敏*感*词*ey、RedirectURI、Scope、PackageName与开发者官网一致。
功能列表1. 认证授权特别说明:新版sdk去掉了openapi功能(包括获取用户信息等方法),授权后获取用户信息请参考openapi接口文档微博开放平台api,使用自带的网络引擎请求数据2.分享到微博
通过微博SDK,第三方应用可以分享文字、图片、视频:
有微博客户
OpenApi openApi 不再在微博 sdk 中维护。如果要使用OpenApi,请参考开发者网站使用自己的网络访问
运行示例代码
为了方便第三方应用更快地集成微博SDK,更清楚地了解微博SDK提供的功能,我们在GitHub上提供了一个简单的示例工程和对应的APK安装包。
**方法一:**通过adb install命令直接安装app_debug.apk(新建文档文件夹下)**方法二:**在Android Studio中导入并运行weibosdkdemo项目(详见Android微博)平台SDK文档4.1.pdf:运行示例代码)
微博SDK和DEMO项目目录结构及分析
微博SDK目前以部分开源的形式提供给第三方开发者。简而言之,可以分为以下三个部分:
集成前准备1. 申请应用的APP_KEY
在这一步,您需要在微博开放平台上注册您的应用,获取APP_KEY,并添加应用的授权回调页面(Redirect URI)。详情请仔细阅读:手机客户端访问( )
2. 注册的应用包名和签名
您需要在微博开放平台上注册应用程序的包名和签名,才能正确进行授权。
请注意:包名和签名未注册,或签名注册错误,将导致授权失败。
应用包名:指AndroidManifest.xml文件中package标签所代表的内容。
应用签名:签名是官方签名工具生成的MD5值。
详情请参考:微博Android平台SDK文档V4.0pdf:如何使用签名工具获取应用的签名?
3. 集成SDK
1:Android Studio访问修改你项目主模块下的build.gradle文件,添加微博sdk的依赖
allprojects {
repositories {
jcenter()
mavenCentral()
maven { url "https://dl.bintray.com/thelasterstar/maven/" }
}
}
compile 'com.sina.weibo.sdk:core:4.4.3:openDefaultRelease@aar'
或者将新建文档目录下的openDefault-4.4.1.aar复制到工程libs目录下,修改build.gradle文件如下:
repositories{
flatDir {
dirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:24.2.1'
compile(name: 'openDefault-4.4.3', ext: 'aar')
}
2:日食:
将github项目下【eclipse集成】目录下的文件复制到你的项目中
3:差不多
微博sdk aar默认提供[armeabi] [armeabi-v7a] [arm64-v8a]三个平台的so。如果需要适配更多版本的so,请到github->so目录获取所有平台so文件
如果只想引入特定平台,在gradle中配置如下
splits {
abi {
enable true
reset()
include 'armeabi' //根据需求自己修改
universalApk true
}
}
4:关于混淆
-keep class com.sina.weibo.sdk.** { *; }
第三方如何使用(认证授权)1.替换自己应用的APP_KEY等参数
鉴于很多第三方开发者在Demo中直接复制使用Constants类,有必要说明一下第三方开发者需要将Constants类中的各种参数替换为自己应用程序的参数。请仔细阅读代码注释。
public interface Constants {
/** 当前 DEMO 应用的 APP_KEY,第三方应用应该使用自己的 APP_KEY 替换该 APP_KEY */
public static final String APP_KEY = "2045436852";
/**
* 当前 DEMO 应用的回调页,第三方应用可以使用自己的回调页。
* 建议使用默认回调页:https://api.weibo.com/oauth2/default.html
*/
public static final String REDIRECT_URL = "http://www.sina.com";
/**
* WeiboSDKDemo 应用对应的权限,第三方开发者一般不需要这么多,可直接设置成空即可。
* 详情请查看 Demo 中对应的注释。
*/
public static final String SCOPE =
"email,direct_messages_read,direct_messages_write,"
+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"
+ "follow_app_official_microblog," + "invitation_write";
}
2. 创建微博API接口类对象
mAuthInfo = new AuthInfo(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE);
WbSdk.install(this,mAuthInfo);
其中:APP_KEY、REDIRECT_URL、SCOPE需要替换为第三方应用申请的内容。
3. 实现 WbAuthListener 接口
private class SelfWbAuthListener implements com.sina.weibo.sdk.auth.WbAuthListener{
@Override
public void onSuccess(final Oauth2AccessToken token) {
WBAuthActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
mAccessToken = token;
if (mAccessToken.isSessionValid()) {
// 显示 Token
updateTokenView(false);
// 保存 Token 到 SharedPreferences
AccessTokenKeeper.writeAccessToken(WBAuthActivity.this, mAccessToken);
Toast.makeText(WBAuthActivity.this,
R.string.weibosdk_demo_toast_auth_success, Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public void cancel() {
Toast.makeText(WBAuthActivity.this,
R.string.weibosdk_demo_toast_auth_canceled, Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(WbConnectErrorMessage errorMessage) {
Toast.makeText(WBAuthActivity.this, errorMessage.getErrorMessage(), Toast.LENGTH_LONG).show();
}
}
4. 调用方法、认证和授权
mSsoHandler = new SsoHandler(WBAuthActivity.this);
mSsoHandler.authorizeWeb(new WbAuthListener());
mSsoHandler = new SsoHandler(WBAuthActivity.this);
mSsoHandler. authorizeClientSso(new WbAuthListener());
mSsoHandler = new SsoHandler(WBAuthActivity.this);
mSsoHandler. authorize(new WbAuthListener());
以上三个授权需要在Activity的onActivityResult函数中调用如下方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (mSsoHandler != null) {
mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
其他功能
其他功能请参考文档:微博Android平台SDK文档V4.1.pdf