zoukankan      html  css  js  c++  java
  • 第三方登录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();

    }
    }
    });

    }

    });

  • 相关阅读:
    程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
    程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)
    程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
    程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现)
    算法的时间复杂度概念
    时间复杂度的计算
    mysql索引总结(3)-MySQL聚簇索引和非聚簇索引
    mysql索引总结(2)-MySQL聚簇索引和非聚簇索引
    【笔试题】2020华为笔试
    C++中的break、continue、goto语句
  • 原文地址:https://www.cnblogs.com/zhengyanyan/p/5326736.html
Copyright © 2011-2022 走看看