第三方登录,授权,分享

</pre><pre name="code" class="java">
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">
<p>首先须要到官网下载集成SDK,   shareSDK, 打开jar包,   填写好包名和类名,会生成相应的文件,将其拷贝到自己的project中就可以.</p><p><span style="color:#ff0000;">
</span></p><p><span style="color:#ff0000;">然后须要在androidManifest.xml中加入权限.</span></p><pre name="code" class="java">
<?xml version="1.0" encoding="utf-8"?

>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.gao_sharesdk"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="14" />
<span style="color:#ff6666;"><uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/></span>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.test.gao_sharesdk.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>
        </activity>
        <span style="color:#cc66cc;"> <activity
            android:name="com.mob.tools.MobUIShell"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:windowSoftInputMode="stateHidden|adjustResize" >
            <intent-filter>
                <data android:scheme="tencent100371282" />

                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" /></span>
            </intent-filter>
              <span style="background-color: rgb(153, 255, 255);"><!--
            	Adapter表示一个继承自cn.sharesdk.framework.authorize.AuthorizeAdapter的类,
            	这个类能够监听到页面的生命周期,也能够获取授权页面的各种UI控件。
            	开发人员能够通过继承AuthorizeAdapter,重写其方法,并获取各种UI来自己定义这个页面的行为。

        --></span>
<span style="color:#ff6666;">        <meta-data
            android:name="AuthorizeAdapter"
            android:value="com.test.gao_sharesdk.MyAdapter"/></span>
        </activity>

    </application>

</manifest>
</pre><span style="background-color:rgb(255,255,51)">_____________这是调皮的分界线_____________________________________________________________________________________________________________________________</span><p><pre name="code" class="java">package com.example.sharesdkdemo01;

import java.util.HashMap;

import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.onekeyshare.OnekeyShare;
import cn.sharesdk.tencent.qq.QQ;
import cn.sharesdk.tencent.weibo.TencentWeibo;
import cn.smssdk.EventHandler;
import cn.smssdk.SMSSDK;
import cn.smssdk.gui.RegisterPage;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {
	private static final String APPKEY = "800ccd4a92bc";
	private static final String APPSECRET = "09621165ebd2cfd00c3019606249acb0";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 做初始化
		ShareSDK.initSDK(getApplicationContext());
		SMSSDK.initSDK(getApplicationContext(), APPKEY, APPSECRET);
		RegisterPage page = new RegisterPage();
		page.setRegisterCallback(new EventHandler() {
			public void afterEvent(int event, int result, Object data) {
				// 解析注冊结果
				if (result == SMSSDK.RESULT_COMPLETE) {
					@SuppressWarnings("unchecked")
					HashMap<String, Object> phoneMap = (HashMap<String, Object>) data;
					String country = (String) phoneMap.get("country");
					String phone = (String) phoneMap.get("phone");

					// 提交用户信息
					//registerUser(country, phone);
				}
			}
		});
		page.show(getApplicationContext());
		// login(TencentWeibo.NAME);
		//share(TencentWeibo.NAME);
	}

	public void share(String plateformName) {
		OnekeyShare oks = new OnekeyShare();
	    //true隐藏编辑页面,false显示编辑页面
		oks.setSilent(true);
		// 关闭sso授权
		oks.disableSSOWhenAuthorize();
		//oks.setPlatform(plateformName);
		// 分享时Notification的图标和文字 2.5.9以后的版本号不调用此方法
		// oks.setNotification(R.drawable.ic_launcher,
		// getString(R.string.app_name));
		// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
		oks.setTitle(getString(R.string.share));
		// titleUrl是标题的网络链接。仅在人人网和QQ空间使用
		oks.setTitleUrl("http://sharesdk.cn");
		// text是分享文本,全部平台都须要这个字段(字数限制,尽量话语简洁)
		oks.setText("我是分享文本");
		// imagePath是图片的本地路径。Linked-In以外的平台都支持此參数(假设本地没有这张图片,分享直接中断。至提示分享失败。查不出错误)
		//oks.setImagePath("/sdcard/test.jpg");// 确保SDcard以下存在此张图片
		// ImageUrl是图片的网络路径,新浪微博,人人,QQ空间使用(但QQ因权限问题有时候分享不成功)
		// oks.setImageUrl("===========");
		// url仅在微信(包含好友和朋友圈)中使用
		oks.setUrl("http://sharesdk.cn");
		// comment是我对这条分享的评论,仅在人人网和QQ空间使用
		oks.setComment("我是測试评论文本");
		// site是分享此内容的站点名称。仅在QQ空间使用
		oks.setSite(getString(R.string.app_name));
		// siteUrl是分享此内容的站点地址。仅在QQ空间使用
		oks.setSiteUrl("http://sharesdk.cn");
		// 分享的地区的经纬度(可依据定位获取,实时更新所在地区)
		// oks.setLatitude(latitude);
		// oks.setLongitude(longitude);
		// 启动分享GUI
		oks.show(this);
	}

	/**
	 * 指定平台登录
	 *
	 * @param plateformName
	 *            :指定平台的名称
	 */
	public void login(final String plateformName) {
		// 获取指定平台的Platform实例
		Platform p = ShareSDK.getPlatform(getApplicationContext(),
				plateformName);
		// true不使用SSO授权。false使用SSO授权(QQ等client登录必须设置SSOSetting的值为false)
		p.SSOSetting(true);
		// 调用要数据不要功能的登录方法,获取个人信息參数传入值为null
		p.showUser(null);
		// 设置登录行为的监听(成功,失败,取消)
		p.setPlatformActionListener(new PlatformActionListener() {

			@Override
			public void onError(Platform arg0, int arg1, Throwable arg2) {
				// TODO Auto-generated method stub
				Log.e("====", "===" + arg2.getMessage());
			}

			@Override
			public void onComplete(Platform arg0, int arg1,
					HashMap<String, Object> arg2) {
				// TODO Auto-generated method stub
				if (plateformName.equals(QQ.NAME)) {

				} else if (plateformName.equals(TencentWeibo.NAME)) {

				}
				Log.e("====", "===" + arg2.toString());
				Log.e("====", "===" + arg0.getDb().getUserIcon());
			}

			@Override
			public void onCancel(Platform arg0, int arg1) {
				// TODO Auto-generated method stub

			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

package com.example.sharesdkdemo01;

import java.util.HashMap;

import cn.sharesdk.framework.Platform;

import cn.sharesdk.framework.PlatformActionListener;

import cn.sharesdk.framework.ShareSDK;

import cn.sharesdk.onekeyshare.OnekeyShare;

import cn.sharesdk.tencent.qq.QQ;

import cn.sharesdk.tencent.weibo.TencentWeibo;

import cn.smssdk.EventHandler;

import cn.smssdk.SMSSDK;

import cn.smssdk.gui.RegisterPage;

import android.os.Bundle;

import android.app.Activity;

import android.util.Log;

import android.view.Menu;

public class MainActivity extends Activity {

private static final String APPKEY = "800ccd4a92bc";

private static final String APPSECRET = "09621165ebd2cfd00c3019606249acb0";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// 做初始化

ShareSDK.initSDK(getApplicationContext());

SMSSDK.initSDK(getApplicationContext(), APPKEY, APPSECRET);

RegisterPage page = new RegisterPage();

page.setRegisterCallback(new EventHandler() {

public void afterEvent(int event, int result, Object data) {

// 解析注冊结果

if (result == SMSSDK.RESULT_COMPLETE) {

@SuppressWarnings("unchecked")

HashMap<String, Object> phoneMap = (HashMap<String, Object>) data;

String country = (String) phoneMap.get("country");

String phone = (String) phoneMap.get("phone");

// 提交用户信息

//registerUser(country, phone);

}

}

});

page.show(getApplicationContext());

// login(TencentWeibo.NAME);

//share(TencentWeibo.NAME);

}

public void share(String plateformName) {

OnekeyShare oks = new OnekeyShare();

//true隐藏编辑页面,false显示编辑页面

oks.setSilent(true);

// 关闭sso授权

oks.disableSSOWhenAuthorize();

//oks.setPlatform(plateformName);

// 分享时Notification的图标和文字 2.5.9以后的版本号不调用此方法

// oks.setNotification(R.drawable.ic_launcher,

// getString(R.string.app_name));

// title标题。印象笔记、邮箱、信息、微信、人人网和QQ空间使用

oks.setTitle(getString(R.string.share));

// titleUrl是标题的网络链接。仅在人人网和QQ空间使用

oks.setTitleUrl("http://sharesdk.cn");

// text是分享文本,全部平台都须要这个字段(字数限制,尽量话语简洁)

oks.setText("我是分享文本");

// imagePath是图片的本地路径,Linked-In以外的平台都支持此參数(假设本地没有这张图片,分享直接中断,至提示分享失败,查不出错误)

//oks.setImagePath("/sdcard/test.jpg");// 确保SDcard以下存在此张图片

// ImageUrl是图片的网络路径,新浪微博。人人,QQ空间使用(但QQ因权限问题有时候分享不成功)

// oks.setImageUrl("===========");

// url仅在微信(包含好友和朋友圈)中使用

oks.setUrl("http://sharesdk.cn");

// comment是我对这条分享的评论。仅在人人网和QQ空间使用

oks.setComment("我是測试评论文本");

// site是分享此内容的站点名称,仅在QQ空间使用

oks.setSite(getString(R.string.app_name));

// siteUrl是分享此内容的站点地址,仅在QQ空间使用

oks.setSiteUrl("http://sharesdk.cn");

// 分享的地区的经纬度(可依据定位获取,实时更新所在地区)

// oks.setLatitude(latitude);

// oks.setLongitude(longitude);

// 启动分享GUI

oks.show(this);

}

/**

* 指定平台登录

*

* @param plateformName

*            :指定平台的名称

*/

public void login(final String plateformName) {

// 获取指定平台的Platform实例

Platform p = ShareSDK.getPlatform(getApplicationContext(),

plateformName);

// true不使用SSO授权,false使用SSO授权(QQ等client登录必须设置SSOSetting的值为false)

p.SSOSetting(true);

// 调用要数据不要功能的登录方法。获取个人信息參数传入值为null

p.showUser(null);

// 设置登录行为的监听(成功,失败,取消)

p.setPlatformActionListener(new PlatformActionListener() {

@Override

public void onError(Platform arg0, int arg1, Throwable arg2) {

// TODO Auto-generated method stub

Log.e("====", "===" + arg2.getMessage());

}

@Override

public void onComplete(Platform arg0, int arg1,

HashMap<String, Object> arg2) {

// TODO Auto-generated method stub

if (plateformName.equals(QQ.NAME)) {

} else if (plateformName.equals(TencentWeibo.NAME)) {

}

Log.e("====", "===" + arg2.toString());

Log.e("====", "===" + arg0.getDb().getUserIcon());

}

@Override

public void onCancel(Platform arg0, int arg1) {

// TODO Auto-generated method stub

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}


以下是Adapter,--------自己定义登录窗体的标题

package com.test.gao_sharesdk;

import cn.sharesdk.framework.TitleLayout;
import cn.sharesdk.framework.authorize.AuthorizeAdapter;

public class MyAdapter extends AuthorizeAdapter {
	@Override
	public void onCreate() {
		super.onCreate();
		TitleLayout titleLayout = getTitleLayout();
		titleLayout.getTvTitle().setText("哇哈哈");//设置登录窗体的标题
		hideShareSDKLogo();//隐藏自带的logo
	}

}
时间: 2024-08-11 03:38:11

第三方登录,授权,分享的相关文章

android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法

        Leaning_wk每一次的进步都会拉近与成功的距离! 帐号设置退出   关闭 qq_15855289的博客 目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书      免费直播:AI时代,机器学习如何入门?      程序员8月书讯      每周荐书:Java Web.Python极客编程(评论送书) android使用友盟实现第三方登录.分享以及微信回调无反应问题解决办法 标签: android友盟第三方登录分享微信登录回调问题 2017-02-10 16:2

Android记录16-友盟第三方登录、分享实现

Android开发记录16-友盟第三方登录.分享实现 2014年博客之星,投票地址点击打开链接 本篇博客给大家分享一个笔者正在做的关于第三方登录.分享的实例.这里选用的是友盟社会化组件. 博客大纲例如以下: 第三方登录流程 友盟支持第三方登录的平台 友盟社会化分享支持的平台 集成友盟社会化组件流程 友盟社会化SDK集成流程 注意事项 第三方登录流程 下面这张图转自:http://www.cnblogs.com/hooray/archive/2012/11/17/2774499.html 移动应用

第三方登录授权说明

名词说明: openid/uid:新浪.腾讯账号对应的唯一ID access_toekn::授权成功后返回的token,用于调用第三方Api AppId:接入第三方应用的唯一ID,在第三方开放平台添加应用后获取到的 Openid,access_toekn,AppId是调用第三方API所必须的 第三方登录的主要作用: 1.使用第三方账号信息来初始化自己的账号(昵称.头像等信息) 2.分享功能等(新浪微博,QQ空间.微信等) 第三方登录流程 1.  首次使用第三方账号登录,输入第三方账号的登录名.密

IOS项目集成ShareSDK实现第三方登录、分享、关注等功能(转)

原文链接:http://blog.csdn.net/daleiwang/article/details/34081231 (1)官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/ (2)根据实际情况,引入相关的库,参考官方文档. (3)在项目的AppDelegate中一般情况下有三个操作,第一是注册ShareSDK,第二是注册各个平台的账号,第三是关于微信等应用的回调处理. [objc] view plain copy print? // //  AppD

iOS:IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。

原文链接:http://blog.csdn.net/daleiwang/article/details/34081231 (3)在项目的AppDelegate中一般情况下有三个操作,第一是注册ShareSDK,第二是注册各个平台的账号,第三是关于微信等应用的回调处理. // // AppDelegate.m // ShareSDKTest // // Created by wangdalei on . // Copyright (c). All rights reserved. // #impo

IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。

(1)官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/ (2)根据实际情况,引入相关的库,参考官方文档. (3)在项目的AppDelegate中一般情况下有三个操作,第一是注册ShareSDK,第二是注册各个平台的账号,第三是关于微信等应用的回调处理. // //  AppDelegate.m //  ShareSDKTest // //  Created by wangdalei on 14-6-23. //  Copyright (c) 2014年 

Android-友盟第三方登录与分享

### 前言 最近项目中又一次需要集成友盟的三方登录与分享,之前没有记录过,所以这次来写一下... ### 准备工作 1.注册友盟账号创建应用,获取key:申请地址http://www.umeng.com 2.对对应的平台(腾讯.微信.新浪等等)申请第三方账号,获取key和密码 ### 集成步骤 因为shareSDK分享与第三方登录集成方式类似(共用jar包),所以我就一起说了. ##### 1.下载shareSDK分享的SDK 下载地址:https://developer.umeng.com/

利用ShareSDK进行第三方登录和分享

到相应开发者平台注册开发者账号,并添加你要进行分享和使用第三方登录应用的信息. 添加新浪微博应用 注册网址 http://open.weibo.com添加QQ应用 注册网址  http://mobile.qq.com/api/添加微信应用  http://open.weixin.qq.com

微信第三方登录授权

首先第三方应用要跟微信帐号合作,然后按照下面的方法操作: 第一步:注册应用. 可以通过卫微信的开放平台去注册一个应用.之后你会得到一个App Key和一个App Secret.拥有它们,你才可以申请权限. 假设你的App Key是“1234567890”,App Secret是“abcdefghijklmnopqrstuvwxyz" 第二步:写代码. 将获取到的OAuth的php版本的SDK加入你的project中.将你申请到的Key和Secret做为两个变量定义并赋值. 对于OAuth来说,很