android 微博 4.1sdk,Android新浪微博SDK分享功能接入

集成前准备

1. 申请APP_KEY

第三方需要接入微博SDK必须在微博开放平台上对应用进行注册,并获取APP_KEY,添加

应用的授权回调页面(Redirect URI)

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

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

请注意:包名和签名未注册,或者签名注册不正确,都会导致无法授权。

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

应用程序签名:该签名是通过官方提供的签名工具生成的MD5值。

详情请查看:微博Android平台SDK文档V4.0pdf 中:如何使用签名工具获取您应用的签名?

注:这个pdf链接不知道是我浏览器的原因还是怎么回事,一直是打不开的,但是这个文档在文章末尾提到的官方demo中,是有这个文档的,大家可以将demo下载下来,然后就可以看里面的 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.1.3:openDefaultRelease@aar'

注:添加完依赖后需要点击 Sync Project with Gradle Files 按钮进行下载依赖包

2:Manifest文件中添加以下permission应用权限

uses-permission>

uses-permission>

uses-permission>

uses-permission>

应用接入

1. 替换成自己应用的 APP_KEY 等参数

定义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. Activity中接入分享

public class ShareActivity extends AppCompatActivity implements View.OnLongClickListener,WbShareCallback {//实现WbAuthListener接口

public static final String TAG = "Chunna=ShareActivity";

private ImageView ivQRCode;

WbShareHandler shareHandler;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_share);

initView();

initWeiBo();

}

private void initView() {

ivQRCode = (ImageView)findViewById(R.id.iv_share_QRcode);

ivQRCode.setOnLongClickListener(this);

}

private void initWeiBo() {

WbSdk.install(this,new AuthInfo(this, WebConstants.APP_KEY,WebConstants.REDIRECT_URL, WebConstants.SCOPE));//创建微博API接口类对象

shareHandler = new WbShareHandler(this);

shareHandler.registerApp();

}

/**

* 用户点击分享按钮,唤起微博客户端进行分享。

*/

@Override

public boolean onLongClick(View view) {

//第一个参数是判断分享内容中是否有文本,第一个参数是判断分享内容中是否有图片

sendMessageToWb(false,true);

return true;

}

@Override

public void onWbShareSuccess() {

Log.d(TAG,"分享成功");

}

@Override

public void onWbShareCancel() {

Log.d(TAG,"分享取消");

}

@Override

public void onWbShareFail() {

Log.d(TAG,"分享失败");

}

@Override

protected void onNewIntent(Intent intent) {

super.onNewIntent(intent);

shareHandler.doResultIntent(intent,this);

}

/**

* 第三方应用发送请求消息到微博,唤起微博分享界面。

*/

private void sendMessageToWb(boolean hasText, boolean hasImage) {

sendMultiMessage(hasText, hasImage);

}

/**

* 第三方应用发送请求消息到微博,唤起微博分享界面。

*/

private void sendMultiMessage(boolean hasText, boolean hasImage) {

WeiboMultiMessage weiboMessage = new WeiboMultiMessage();

if (hasText) {

weiboMessage.textObject = getTextObj();

}

if (hasImage) {

weiboMessage.imageObject = getImageObj(this);

}

shareHandler.shareMessage(weiboMessage, false);

}

/**

* 创建文本消息对象。

*@return 文本消息对象。

*/

private TextObject getTextObj() {

TextObject textObject = new TextObject();

textObject.text = "这里是分享的内容";

textObject.title = "xxxx";

textObject.actionUrl = "http://www.baidu.com";

return textObject;

}

/**

* 创建图片消息对象。

*@return 图片消息对象。

*/

private ImageObject getImageObj(Context context) {

ImageObject imageObject = new ImageObject();

Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_share_qrcode);

imageObject.setImageObject(bitmap);

return imageObject;

}

}

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:background="@mipmap/ic_launcher"/>

RelativeLayout>

文章参考:新浪微博开发文档

文章参考:新浪微博github地址中的demo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值