android 新浪微博平台开发
一、先需要在新浪微博开放平台注册成为一名开发者:
1、注册完成后需要进行实名验证。
二、在我的应用中创建应用,填写相关信息。
1、Android包名: 包名必须是你即将要使用新浪微博平台的应用的包名。
在 AndroidManifest.xml 文件中找到package="android.weibo_gjk.com.weibo", 引号中的就是包名。
2、Android签名:
a、签名栏后面有个链接:获取签名工具,点击链接下载对应的apk工具,安装到手机或者模拟机上。
b、在安装好签名的工具的手机或者模拟机上**安装好你需要调试的app**。(必须安装,空app都行,要不然获取签名工具的app获取不到MD5签名)
c、打开签名工具,在包名栏填写需要签名也就是步骤b已经安装好的app的包名,生成MD5签名。
上面三部提到的app都是同一个,包名也必须一致!复制生成的包名,填写到对应栏。
3、把其他必要的信息填写完成,拷贝应用生成的 App key和App Secret备用!
4、点开应用-应用信息-高级信息-填写授权回调页
5、点开应用-应用信息-测试信息-填写测试账号(应用未审核发布之前只能用测试账号访问)
三、修改app的默认签名文件。
新浪微博提供了签名文件,我们必须要修改app默认的签名文件
1、新建签名文件。android studio提供了自己创建签名文件的功能。
创建修改签名文件详解:http://blog.csdn.net/nimasike/article/details/51457229
2、修改签名文件。
四、下载新浪微博SDK项目加载SO文件。
1、找到SDK下载的连接:https://github.com/sinaweibosdk/weibo_android_sdk
2、下载后解压,将SO文件复制到下面main目录下新建的文件夹jniLibs下
3、将新浪微博的SDK文件复制到项目App目录的libs文件夹下,再右键选择 Add as library
4、验证SDK是否成功引用。在配置文件中,执行完步骤三之后看到如图所示语句表示引用成功:
到此准备工作做完了,可以测试授权登录了:
public class LandingpageActivity extends BaseActivty {
private SsoHandler mSssoSsoHandler;
private AuthInfo mAuthInfo;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAuthInfo = new AuthInfo(getApplicationContext(), CWConstant.APP_KEY, CWConstant.REDIRECT_URL, CWConstant.SCOPE);
//CWConstant.APP_KEY 常量:上面步骤二第3小点保存的Android key
//REDIRECT_URL = "https://api.weibo.com/oauth2/default.html" 常量,回调地址
//SCOPE ="email,direct_messages_read,direct_messages_write,"+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"+ "follow_app_official_microblog," + "invitation_write"; 常量,应用申请的高级权限
mSssoSsoHandler = new SsoHandler(this, mAuthInfo);
mSssoSsoHandler.authorize(new WeiboAuthListener() { //登录监听事件
@Override
public void onComplete(Bundle bundle) {
//bundle 登录成功反馈的数据包
Log.d("onComplete", bundle + "");
}
@Override
public void onWeiboException(WeiboException e) {
}
@Override
public void onCancel() {
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(null != mSssoSsoHandler){//调用回调函数
mSssoSsoHandler.authorizeCallBack(requestCode,resultCode,data);
}
}
}