【轉載】 友盟社會化Android元件之第三方登入
前段時間公司需要,逐步了新浪微博、騰訊qq、微信等授權登入驗證的問題。如果要一個個申請,看文件寫程式碼也是很多流程的。乾脆用友盟社會化Android元件之第三方登入。友盟是集成了這些平臺,還有其他主流的平臺的。我在這裡主要講一下友盟裡面微博登入。先看看友盟是怎麼介紹自已的。
一、友盟社會化分享介紹
友盟社會化分享元件,幫助移動應用快速具備微信分享,微博分享、登入、評論、喜歡等社會化元件功能,助力產品推廣,並提供實時、全面的社會化資料統計分析服務,是國內最大的社會化分享SDK。
支援各大社交平臺
精選國內外23個主流社交平臺,支援圖片、文字、圖文、音樂、視訊等多種內容的分享。
國內平臺:微信、朋友圈、QQ、Qzone、新浪微博、騰訊微博、人人、豆瓣、有道雲筆記、來往、易信、簡訊、郵件
國外平臺:Facebook、Twitter、Instagram、Google+、Line、Whatsapp、Tumblr、Pinterest、Evernote、Pocket、LIinkedIn、Flickr、Kakao Talk。
從這上面可以看出,支援平臺太多啦,自已有選擇開發就行。搞幾個申請、註冊、身份認證、應用稽核。。。你都會抓狂的。。
二、友盟開發
友盟的註冊很簡單,有個郵箱就能註冊,註冊完不用身份認證那麼麻煩。不用稽核等。
2、友盟官方第三方文件支援:
三、友盟平臺裡面新浪微博操作
這個開放平臺的註冊,一定要有開通微博賬號的賬戶。用個人或者企業級的。
開通之後,先進行郵箱驗證:選擇個人或者企業。需要一系列的資料。
身份驗證:個人和企業認證有區別。也是一系列的資料。
搞定這些了,建立移動應用了。需要的資料很多,我在這裡列出幾個重點的:
應用的包名:
應用的簽名:
android應用的下載地址:(一定是應用商店上線後的地址:例如,百度、91、安卓等,我是有百度開發者平臺上線應用的)
應用介紹:
應用圖示:三個(分別是16*16、80*80、120*120 單位px)
應用介紹圖片:三張以上(300*450 單位px)
ps:有這些資料就差不多了,圖片尺寸以及應用下載地址嚴格按照要求。個人開發一般人還真弄不了那麼多。
提交需要稽核,最好在應用展示圖片中有用到分享到微博的例子,容易通過。稽核時間一天以內。
2、App Key以及App Secret配置到友盟平臺
這上面搞定了之後,把上面申請到的App Key以及App Secret配置到友盟平臺。如下圖:
新浪微博的配置不用在程式碼中配置,只需要在友盟的後臺。微信,qq需要在程式碼中配置。
3、新浪微博第三方登入程式碼的流程
這個流程在友盟文件中也有很詳細,我就不寫友盟那裡文件的東西了。寫了就有重複。就看看我的程式碼吧。不過我程式碼中還有qq,微信都在了。將就著看,感覺都還好理解。我只貼授權登入的了,分享、評論那些我刪了。
- <span style="font-size:18px;">package com.southgnss.umeng;
- import java.io.File;
- import java.util.Date;
- import java.util.Map;
- import android.app.Activity;
- import android.content.Intent;
- import android.graphics.BitmapFactory;
- import android.os.Bundle;
- import android.text.TextUtils;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.Toast;
- import com.southgnss.umeng.commons.Constants;
- import com.umeng.analytics.MobclickAgent;
- import com.umeng.socialize.bean.SHARE_MEDIA;
- import com.umeng.socialize.bean.SocializeEntity;
- import com.umeng.socialize.bean.StatusCode;
- import com.umeng.socialize.controller.UMServiceFactory;
- import com.umeng.socialize.controller.UMSocialService;
- import com.umeng.socialize.controller.listener.SocializeListeners.SocializeClientListener;
- import com.umeng.socialize.controller.listener.SocializeListeners.UMAuthListener;
- import com.umeng.socialize.controller.listener.SocializeListeners.UMDataListener;
- import com.umeng.socialize.exception.SocializeException;
- import com.umeng.socialize.sso.QZoneSsoHandler;
- import com.umeng.socialize.sso.SinaSsoHandler;
- import com.umeng.socialize.sso.UMQQSsoHandler;
- import com.umeng.socialize.sso.UMSsoHandler;
- import com.umeng.socialize.utils.Log;
- import com.umeng.socialize.weixin.controller.UMWXHandler;
- /**
- * @description 實現友盟第三方登入登出、獲取使用者資訊
- */
- publicclass LoginActivity extends Activity implements OnClickListener {
- // 整個平臺的Controller,負責管理整個SDK的配置、操作等處理
- private UMSocialService mController = UMServiceFactory
- .getUMSocialService(Constants.DESCRIPTOR);
- private Button sinaLoginButton;
- private Button sinaLogoutButton;
- private Button qqLoginButton;
- private Button qqLogoutButton;
- private Button wechatLoginButton;
- private Button wechatLogoutButton;
- private Button shareButton;
- @SuppressWarnings("deprecation")
- @Override
- protectedvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- sinaLoginButton = (Button) this.findViewById(R.id.btn_sina_login);
- sinaLogoutButton = (Button) this.findViewById(R.id.btn_sina_logout);
- qqLoginButton = (Button) this.findViewById(R.id.btn_qq_login);
- qqLogoutButton = (Button) this.findViewById(R.id.btn_qq_logout);
- shareButton = (Button) this.findViewById(R.id.btn_share);
- wechatLoginButton = (Button) this.findViewById(R.id.btn_wechat_login);
- wechatLogoutButton = (Button) this.findViewById(R.id.btn_wechat_logout);
- sinaLoginButton.setOnClickListener(this);
- sinaLogoutButton.setOnClickListener(this);
- qqLoginButton.setOnClickListener(this);
- qqLogoutButton.setOnClickListener(this);
- shareButton.setOnClickListener(this);
- wechatLoginButton.setOnClickListener(this);
- wechatLogoutButton.setOnClickListener(this);
- // 配置需要分享的相關平臺
- configPlatforms();
- MobclickAgent.updateOnlineConfig(this);
- }
- @Override
- protectedvoid onResume() {
- super.onResume();
- MobclickAgent.onResume(this);
- }
- @Override
- protectedvoid onPause() {
- super.onPause();
- MobclickAgent.onPause(this);
- }
- /**
- * 配置分享平臺引數
- */
- privatevoid configPlatforms() {
- // 新增新浪sso授權
- mController.getConfig().setSsoHandler(new SinaSsoHandler());
- // 新增QQ、QZone平臺
- addQQQZonePlatform();
- // 新增微信、微信朋友圈平臺
- addWX