第三方登录qq、微博

第三方登录: 用的友盟 得下载好sdk包;

首先登录友盟开发者服务平台,获得key值(得先创建一个应用,在管理里面可以看见key值,一个项目工程对应一个应用,也就是对应一个key值,如果说这个项目里,有qq、和微博两种登录方式,只要同一个应用,同一个key值就行了,因为这两个同属于同一个项目工程程序),(然后打开文档中心--》点击社会化分享--》点击小机器人。-------这是参照人家的文档一步步粘贴的);

然后打开下载好的SDK集成工具文件夹:(存放路径)D:zhengyanyan学习有关的软件umeng_android_social_sdk_4.2.3_custom,打开SDKIntegration.jar的jar包,选择自己要实现的工程的根目录,输入你刚才创建的那个应用的友盟key值,(去友盟上把key值拷下来);打开刚才这个jar包时上面的组件是可以选择的,选择自己需要的,然后点击快速集成,就好了,然后在exlipe里刷新一下自己要实现的工程项目,然后最外面的环境这就算好了;

比如说:
(1)要使用qq登录:需要在AndroidManifest.xml里面配置, 放在<activity activity/>下面;

<!-- ############ QQ空间和QQ SSO授权的Activity注册 ############ -->
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent你的QQ互联APPID" />
</intent-filter>
</activity>
<activity android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:screenOrientation="portrait">
</activity>

代码里面;
拷贝全局变量;(放在自己要实现这个功能的activity里面)

UMSocialService mController = UMServiceFactory
.getUMSocialService("com.umeng.login");


监听的上面;放下面的代码;

// 参数1为当前Activity, 参数2为开发者在QQ互联申请的APP ID,参数3为开发者在QQ互联申请的APP kEY.
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(MainActivity.this,
"100424468", "c7394704798a158208a74ab60104f0ba");
qqSsoHandler.addToSocialSDK();

监听里面;
mController.doOauthVerify(MainActivity.this, SHARE_MEDIA.QQ,
new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this, "授权开始",
Toast.LENGTH_SHORT).show();
}

@Override
public void onError(SocializeException e,
SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this, "授权错误",
Toast.LENGTH_SHORT).show();
}

@Override
public void onComplete(Bundle value,
SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this, "授权完成",
Toast.LENGTH_SHORT).show();
// 获取相关授权信息
mController.getPlatformInfo(MainActivity.this,
SHARE_MEDIA.QQ, new UMDataListener() {
@Override
public void onStart() {
Toast.makeText(
MainActivity.this,
"获取平台数据开始...",
Toast.LENGTH_SHORT)
.show();
}

@Override
public void onComplete(int status,
Map<String, Object> info) {
if (status == 200
&& info != null) {
StringBuilder sb = new StringBuilder();
Set<String> keys = info
.keySet();
for (String key : keys) {
sb.append(key
+ "="
+ info.get(key)
.toString()
+ " ");
}
Log.d("TestData",
sb.toString());
System.out.println(sb
.toString()
+ "===========");
} else {
Log.d("TestData", "发生错误:"
+ status);
}
}
});
}

@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this, "授权取消",
Toast.LENGTH_SHORT).show();
}
});

(2)微博登录:
首先和qq一样现在fext.xml 里配置;
然后在监听里拷贝下面的代码就行了;

mController.doOauthVerify(MainActivity.this, SHARE_MEDIA.SINA,
new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this, "授权开始",
Toast.LENGTH_SHORT).show();
}

@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this, "授权取消",
Toast.LENGTH_SHORT).show();

}

@Override
public void onError(SocializeException e,
SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this, "授权错误",
Toast.LENGTH_SHORT).show();
}

@Override
public void onComplete(Bundle value,
SHARE_MEDIA platform) {

Toast.makeText(MainActivity.this, "授权完成",
Toast.LENGTH_SHORT).show();
// 获取相关授权信息
mController.getPlatformInfo(MainActivity.this,
SHARE_MEDIA.SINA, new UMDataListener() {

@Override
public void onStart() {
Toast.makeText(
MainActivity.this,
"获取平台数据开始...",
Toast.LENGTH_SHORT)
.show();
}

@Override
public void onComplete(int status,
Map<String, Object> info) {
if (status == 200
&& info != null) {
StringBuilder sb = new StringBuilder();
Set<String> keys = info
.keySet();

for (String key : keys) {

sb.append(key
+ "="
+ info.get(key)
.toString()
+ " ");
}
System.out.println(sb
.toString()
+ "22222222222222222");

} else {
Log.d("TestData", "发生错误:"
+ status);
Toast.makeText(
MainActivity.this,
"发生错误:" + status,
Toast.LENGTH_SHORT)
.show();

}
}
});

}

});

原文地址:https://www.cnblogs.com/zhengyanyan/p/5326736.html