使用新浪微博开放平台api同步微博内容至自己网站(微博SDK及示例工程目录结构及分析SDK(图))

优采云 发布时间: 2021-12-09 20:03

  使用新浪微博开放平台api同步微博内容至自己网站(微博SDK及示例工程目录结构及分析SDK(图))

  登出API

  用于收回用户的授权。

  邀请API

  提供好友邀请功能,支持登录用户向微博好友发送私信邀请和礼物。

  注:目前我们只提供部分接口。主要原因是API太大。测试每个 API 也是一项非常耗时的任务。因此,我们在使用时优先开放第三方最关心的少数几个API(如上表所示),其他API继续放在com.sina.weibo.sdk.openapi.legacy下。其实这些API我们并没有全部发布,也希望第三方开发者可以和我们一起维护这些API,并将修改后的代码推送到Github。

  另外,网络模块重构了一个简单易用的框架,第三方开发者可以通过Http请求直接调用OpenAPI接口,见:。

  API 文档

  运行示例代码

  为了方便第三方应用更快地集成微博SDK,更清晰地了解当前微博SDK提供的功能,我们在GitHub上提供了一个简单的示例工程和相应的APK安装包。

  方法一:直接通过adb install命令安装WeiboSDKDemo.apk

  方法二:在Eclipse中导入并运行WeiboSDKDemo工程(详见微博Android平台SDK文档3.1.1.pdf:运行示例代码)

  注意:通过第二种方式运行项目时,一定要替换默认的debug.keystore文件,否则授权不会成功。另外,debug.keysotre 是新浪官方的。除编译运行官方DEMO外,请勿直接使用。出于安全原因,您应该为您的应用程序提供一个密钥。

  在 C:\Users\XXXXX\.android 目录中,将 Android 默认的 debug.keystore 替换为 GitHub 上提供的官方 debug.keystore。

  微博SDK和DEMO项目目录结构及分析

  微博SDK目前以部分开源的形式提供给第三方开发者。简而言之,可以分为以下三个部分:

  集成前准备1. 申请应用的APP_KEY

  这一步需要在微博开放平台注册您的应用,获取APP_KEY,并添加应用的授权回调页面(Redirect URI)。详情请仔细阅读:手机客户端访问()

  2. 注册应用的包名和签名

  您需要在微博开放平台注册应用的包名和签名,才能正确进行授权。

  请注意:未注册包名及签名,或签名注册不正确将导致授权失败。

  应用包名:指AndroidManifest.xml文件中包标签所代表的内容。

  应用签名:签名是官方签名工具生成的MD5值。

  详情请看:微博Android平台SDK文档V3.1.1.pdf:如何使用签名工具获取你的应用签名?

  3. 选择你想要的集成方式

  在集成微博 SDK 之前,您有两种可选的方式来集成微博 SDK:

  详情请看:微博Android平台SDK文档3.1.1.pdf 中:选择你要集成的方式

  4. 在你的应用中添加SDK需要的权限

  5. 在你的应用中注册SDK需要的Activity和Service

  第三方如何使用(认证和授权)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);

  其中:APP_KEY、REDIRECT_URL、SCOPE需要替换为第三方应用申请的内容。

  3. 实现 WeiboAuthListener 接口

  class AuthListener implements WeiboAuthListener {

@Override

public void onComplete(Bundle values) {

// 从 Bundle 中解析 Token

mAccessToken = Oauth2AccessToken.parseAccessToken(values);

if (mAccessToken.isSessionValid()) {

// 保存 Token 到 SharedPreferences

AccessTokenKeeper.writeAccessToken(WBAuthActivity.this, mAccessToken);

.........

} else {

// 当您注册的应用程序签名不正确时,就会收到 Code,请确保签名正确

String code = values.getString("code", "");

.........

}

}

@Override

public void onCancel() {

}

@Override

public void onWeiboException(WeiboException e) {

}

}

  4. 调用方法、认证和授权

  以上三个授权需要在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);

}

}

  网络请求框架的使用

  在V2.5.0以后的版本中,我们重构了网络模块,提供了同步和异步网络请求接口。

  异步接口:AsyncWeiboRunner#requestAsync(String, WeiboParameters, String, RequestListener)

  同步接口:AsyncWeiboRunner#request(String, WeiboParameters, String)

  其中,同步接口用于开发者有自己的异步请求机制。

  示例:使用异步接口发送带有图片的微博

  // 1. 获取要发送的图片

Drawable drawable = getResources().getDrawable(R.drawable.ic_com_sina_weibo_sdk_logo);

Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();

// 2. 调用接口发送微博

WeiboParameters params = new WeiboParameters();

params.put("access_token", mAccessToken.getToken());

params.put("status", "通过API发送微博-upload");

params.put("visible", "0");

params.put("list_id", "");

params.put("pic", bitmap);

params.put("lat", "14.5");

params.put("long", "23.0");

params.put("annotations", "");

AsyncWeiboRunner.requestAsync(

"https://api.weibo.com/2/statuses/upload.json",

params,

"POST",

mListener);

  以上代码中,请开发者自行补充mAccessToken和mListener

  其他功能

  其他功能请参考文档:微博Android平台SDK文档V3.1.1.pdf

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线