Maison base de données tutoriel mysql 关于新浪微博与腾讯微博从Oauth1.0升级到Oauth2.0的过程

关于新浪微博与腾讯微博从Oauth1.0升级到Oauth2.0的过程

Jun 07, 2016 pm 03:27 PM
oauth2 à propos 升级 微博 新浪 腾讯

下载地址~ http://download.csdn.net/detail/zhangnianxiang/4375685 新浪微博 曾经@微博API 新浪那边表示 旧版的Oauth 1.0a将在不久的2012.9.1号停止。这个是一个很苦的消息。意味着涉及微博的都要修改。 Oauth2.0相比较于Oauth1.0的话 流程少了很多,其中

下载地址~

http://download.csdn.net/detail/zhangnianxiang/4375685



新浪微博

曾经@微博API 新浪那边表示 旧版的Oauth 1.0a将在不久的2012.9.1号停止。这个是一个很苦逼的消息。意味着涉及微博的都要修改。

Oauth2.0相比较于Oauth1.0的话  流程少了很多,其中一点就是签名。之前都是用signpost这个开源项目辅助。现在完全可以去掉了


好吧。废话不说了。 

新浪微博Oauth2.0认证的官方说明

http://open.weibo.com/wiki/Oauth2


简单步骤:1获取code 2获取accessToken 3使用accessToken访问api

新浪的这份授权机制还是比较详细。理解起来比较容易

接口 说明
OAuth2/authorize 请求用户授权Token
OAuth2/access_token 获取授权过的Access Token
OAuth2/get_oauth2_token  OAuth1.0的Access Token更换至OAuth2.0的Access Token

  步骤1http://open.weibo.com/wiki/Oauth2/authorize

获取code

请求参数

  必选 类型及范围 说明
client_id true string 申请应用时分配的AppKey。
redirect_uri true string 授权回调地址,站外应用需与设置的回调地址一致,站内应用需填写canvas page的地址。
response_type false string 返回类型,支持code、token,默认值为code。
state false string 用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数。
display false string 授权页面的终端类型,取值见下面的说明。


https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI
Copier après la connexion

值得注意的是这边的redirect_uri  必须与   申请的应用那边设置(高级设置里面)的回调地址一致。否则就会出现 error:redirect_uri_mismatch.

这是网页载入授权界面,用户填完账号密码之后按下确定
服务器将返回一个“回调地址+code=xxxxx”的URL(如果是腾讯微博还有openid和openkey等等)
把code是步骤2的关键

步骤2
获取accessToken

API  https://api.weibo.com/oauth2/access_token
将code等参数 以POST传给服务器将返回

 {
       "access_token": "ACCESS_TOKEN",
       "expires_in": 1234,
       "remind_in":"798114",
       "uid":"12341234"
 }
Copier après la connexion

这些数据都是要做数据持久化管理的。
腾讯微博返回稍有不同,但是并不影响

步骤3
访问API



研究中遇到的一些问题
1.腾讯微博    那群脑残的腾讯微博把appke和secret变成  ClientID和ClientSecret

oAuth.setClientId(StatcParame.T_CONSUMER_KEY);
oAuth.setClientSecret(StatcParame.T_CONSUMER_SECRET);

下面直接贴源码了

1
sina
webview承载授权页面的设置
		web=(WebView)findViewById(R.id.web);
		web.getSettings().setJavaScriptEnabled(true);
		web.getSettings().setSupportZoom(true);
		web.getSettings().setBuiltInZoomControls(true);
		web.setWebViewClient(new WebViewC()); 
Copier après la connexion
WebviewClient
Copier après la connexion
class WebViewC extends WebViewClient{
		@Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
	        super.onPageStarted(view, url, favicon);
	        Log.v("aaa", "===onPageStarted==="+url);
			 if(url.contains("code=")){
					try {
						Intent intent = new Intent(Oauth2Activity.this,MainActivity.class);
					 	Uri uri = Uri.parse(url);
						String code = uri.getQueryParameter("code");
						String openid =uri.getQueryParameter("openid");
						String openkey=uri.getQueryParameter("openkey");
						editor.putString(StatcParame.T_OPEN_ID, openid);
						editor.putString(StatcParame.T_OPEN_KEY, openkey);
						HttpClient httpclient=MyCountHttpClient.getNewHttpClient();
						URI accessToken = null;
						List<namevaluepair> parameters=new ArrayList<namevaluepair>();
						//必须编码,否则无法向服务器发送微博
						if(codeFlag==1){
							parameters.add(new BasicNameValuePair("client_id", StatcParame.S_CONSUMER_KEY));
							parameters.add(new BasicNameValuePair("client_secret", StatcParame.S_CONSUMER_SECRET));
							parameters.add(new BasicNameValuePair("redirect_uri", StatcParame.S_CALLBACK));
							
							accessToken = URI.create(StatcParame.S_API_access_token);
							intent.putExtra("mode", 1);
						}else if(codeFlag ==2){
							parameters.add(new BasicNameValuePair("client_id", StatcParame.T_CONSUMER_KEY));
							parameters.add(new BasicNameValuePair("client_secret", StatcParame.T_CONSUMER_SECRET));
							parameters.add(new BasicNameValuePair("redirect_uri", StatcParame.T_CALLBACK));
							
							accessToken = URI.create(StatcParame.T_API_access_token);
							
							intent.putExtra("mode", 2);
						}
						parameters.add(new BasicNameValuePair("grant_type", "authorization_code"));
						parameters.add(new BasicNameValuePair("code", code));
						
						
						HttpPost post=new HttpPost(accessToken);
						HttpResponse response=null;
				
						post.setEntity(new UrlEncodedFormEntity(parameters ,HTTP.UTF_8) );
						post.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
						
						 response = httpclient.execute(post);
						 if(codeFlag==1){
							 JSON.GetOauth(sharedpre,Utils.getResponseText(response));
						 }else if(codeFlag==2){
							 String tempUrl = StatcParame.T_CALLBACK+"?"+Utils.getResponseText(response);
							 Uri temp = Uri.parse(tempUrl);
							 String access_token = temp.getQueryParameter("access_token");
							 String expires_in=temp.getQueryParameter("expires_in");
							 String name=temp.getQueryParameter("name");
							 editor.putString(StatcParame.T_ACCESS_TOKEN, access_token);
							 editor.putString(StatcParame.T_EXPIRES_IN, expires_in);
							 editor.putString(StatcParame.T_NAME, name);
							 editor.commit();
						 }
						 startActivity(intent);
						 Oauth2Activity.this.finish();
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
			 }
        }
	}
</namevaluepair></namevaluepair>
Copier après la connexion

这个方法集合了sina和tencent的处理

这步走完就拿到ACCESSTOKEN了


下面贴个发布微博的方法


SINA发送一个带图片的微博

<span>Weibo weibo = Weibo.getInstance();
			AccessToken accessToken = new AccessToken(shared.getString(StatcParame.S_ACCESS_TOKEN, ""), StatcParame.S_CONSUMER_SECRET);
			accessToken.setExpiresIn(shared.getString(StatcParame.S_EXPIRES_IN, ""));
			weibo.setAccessToken(accessToken);
			weibo.setupConsumerConfig(StatcParame.S_CONSUMER_KEY, StatcParame.S_CONSUMER_SECRET);
			weibo.setRedirectUrl("http://www.sina.com.cn");

			try {
				String msg = URLEncoder.encode(body, HTTP.UTF_8);
			
			        WeiboParameters bundle = new WeiboParameters();
			        bundle.add("status", msg);
			        bundle.add("pic", "/sdcard/1.jpg");
			        String rlt = "";
			        String url = Weibo.SERVER + "statuses/upload.json";
			        
			        Utility.setAuthorization(new Oauth2AccessTokenHeader());
			        rlt = weibo.request(context, url, bundle, Utility.HTTPMETHOD_POST, weibo.getAccessToken());

				Toast.makeText(context, rlt, 1000).show();
				Log.v("aaa","Successfully upload the status to ["+ rlt+ "].");
					return "OK";
			} catch (Exception e1) {
				e1.printStackTrace();
			}</span>
Copier après la connexion


TENCent发送一条微博

OAuthV2 oAuth =new OAuthV2();
		oAuth.setAccessToken(shared.getString(StatcParame.T_ACCESS_TOKEN, ""));
		oAuth.setOauthVersion("2.a");
		oAuth.setClientIP("117.25.173.11");
		oAuth.setOpenid(shared.getString(StatcParame.T_OPEN_ID, ""));
		oAuth.setOpenkey(shared.getString(StatcParame.T_OPEN_KEY, ""));
		oAuth.setClientId(StatcParame.T_CONSUMER_KEY);
		oAuth.setClientSecret(StatcParame.T_CONSUMER_SECRET);
		

		try {
			TAPI api = new TAPI("2.a");
			String respone = api.add(oAuth, "json","abcc","117.25.173.11","","","0");
			Toast.makeText(context, respone, 1000).show();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
Copier après la connexion


源码之后上传。

联系 zhangnianxiang@gmail.com


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment rechercher un Weibo précédent par date sur Weibo_Comment rechercher un Weibo précédent par date sur Weibo Comment rechercher un Weibo précédent par date sur Weibo_Comment rechercher un Weibo précédent par date sur Weibo Mar 30, 2024 pm 07:26 PM

1. Ouvrez d'abord le navigateur Web mobile, recherchez la version Web de Weibo et cliquez sur le bouton avatar dans le coin supérieur gauche après avoir entré. 2. Cliquez ensuite sur Paramètres dans le coin supérieur droit. 3. Cliquez sur l'option de changement de version dans les paramètres. 4. Sélectionnez ensuite l'option de version couleur dans le commutateur de version. 5. Cliquez sur Rechercher pour accéder à la page de recherche. 6. Après avoir saisi les mots-clés, cliquez sur Rechercher des personnes. 7. Lorsque l'interface de fin de recherche apparaît, cliquez sur Filtrer. 8. Enfin, entrez la date spécifique dans la colonne heure de sortie et cliquez sur Filtrer.

L'application de grands modèles Tencent Yuanbao est en ligne ! Hunyuan est mis à niveau pour créer un assistant IA complet pouvant être transporté n'importe où L'application de grands modèles Tencent Yuanbao est en ligne ! Hunyuan est mis à niveau pour créer un assistant IA complet pouvant être transporté n'importe où Jun 09, 2024 pm 10:38 PM

Le 30 mai, Tencent a annoncé une mise à niveau complète de son modèle Hunyuan. L'application « Tencent Yuanbao » basée sur le modèle Hunyuan a été officiellement lancée et peut être téléchargée sur les magasins d'applications Apple et Android. Par rapport à la version de l'applet Hunyuan lors de la phase de test précédente, Tencent Yuanbao fournit des fonctionnalités de base telles que la recherche IA, le résumé IA et l'écriture IA pour les scénarios d'efficacité du travail ; pour les scénarios de la vie quotidienne, le gameplay de Yuanbao est également plus riche et fournit de multiples fonctionnalités d'application IA. , et de nouvelles méthodes de jeu telles que la création d'agents personnels sont ajoutées. « Tencent ne s'efforcera pas d'être le premier à créer un grand modèle. » Liu Yuhong, vice-président de Tencent Cloud et responsable du grand modèle Tencent Hunyuan, a déclaré : « Au cours de l'année écoulée, nous avons continué à promouvoir les capacités de Tencent. Grand modèle Tencent Hunyuan. Dans la technologie polonaise riche et massive dans des scénarios commerciaux tout en obtenant un aperçu des besoins réels des utilisateurs.

Comment libérer quelqu'un bloqué sur Weibo_Comment débloquer Weibo Comment libérer quelqu'un bloqué sur Weibo_Comment débloquer Weibo Mar 30, 2024 am 09:51 AM

1. Cliquez sur [Mon] dans le coin inférieur droit de l'application Weibo pour accéder à votre page d'accueil personnelle. 2. Ensuite, cliquez sur l'icône d'engrenage dans le coin supérieur droit. 3. À ce stade, nous entrons dans la page des paramètres, sélectionnez [Paramètres de blocage] ici pour entrer. 4. Dans les paramètres de blocage, nous pouvons voir les amis que nous avons bloqués, appuyez dessus et cliquez sur [Débloquer] dans les options contextuelles. 5. Les utilisateurs peuvent également rechercher directement les utilisateurs Weibo pour accéder à la page d'accueil des utilisateurs bloqués, puis cliquer sur [...] en haut à droite pour supprimer la liste noire.

Comment supprimer le brouillon de 'Weibo'_Tutoriel sur la suppression du brouillon de 'Weibo' Comment supprimer le brouillon de 'Weibo'_Tutoriel sur la suppression du brouillon de 'Weibo' Mar 30, 2024 pm 12:46 PM

1. Ouvrez d’abord Weibo, cliquez sur Mon et cliquez sur la zone de brouillon. 2. Appuyez ensuite longuement sur n'importe quel brouillon et cliquez pour effacer la zone de brouillon ou supprimer le brouillon. 3. Enfin, cliquez sur OK.

Comment désactiver le mode direct de Weibo_Comment désactiver le mode direct de Weibo Comment désactiver le mode direct de Weibo_Comment désactiver le mode direct de Weibo Mar 30, 2024 am 10:16 AM

1. Ouvrez d’abord Weibo, cliquez sur Rechercher, puis cliquez sur Plus de recherches populaires. 2. Sélectionnez ensuite une recherche rapide pour y accéder. 3. Entrez ensuite dans le mode en direct des commentaires de recherche rapide, recherchez et cliquez sur la version standard dans le coin supérieur droit. 4. Enfin, vous pouvez revenir à la zone de commentaires standard de recherche rapide. Si vous souhaitez continuer à afficher la zone de commentaires en direct, cliquez sur la version en direct dans le coin supérieur droit. Remarque : Ce n'est que lorsqu'il y a beaucoup de commentaires en temps réel qu'il entrera automatiquement en mode direct. Certaines recherches rapides entreront automatiquement en mode direct. Généralement, les recherches à chaud se font en mode standard.

Comment publier des vidéos sur Weibo sans compresser la qualité de l'image_Comment publier des vidéos sur Weibo sans compresser la qualité de l'image Comment publier des vidéos sur Weibo sans compresser la qualité de l'image_Comment publier des vidéos sur Weibo sans compresser la qualité de l'image Mar 30, 2024 pm 12:26 PM

1. Ouvrez d'abord Weibo sur votre téléphone mobile et cliquez sur [Moi] dans le coin inférieur droit (comme indiqué sur l'image). 2. Cliquez ensuite sur [Gear] dans le coin supérieur droit pour ouvrir les paramètres (comme indiqué sur l'image). 3. Ensuite, recherchez et ouvrez [Paramètres généraux] (comme indiqué sur l'image). 4. Entrez ensuite l'option [Video Follow] (comme indiqué sur l'image). 5. Ensuite, ouvrez le paramètre [Résolution de téléchargement vidéo] (comme indiqué sur l'image). 6. Enfin, sélectionnez [Qualité d'image originale] pour éviter la compression (comme indiqué sur l'image).

Si Weibo svip supprime les enregistrements des visiteurs, l'autre partie peut-elle toujours les voir ? Si Weibo svip supprime les enregistrements des visiteurs, l'autre partie peut-elle toujours les voir ? Apr 02, 2024 am 08:04 AM

Une fois que les utilisateurs de Weibo activent la fonction SVIP, ils peuvent gérer les enregistrements des visiteurs, et s'ils visitent la page d'accueil d'un inconnu, ils peuvent la supprimer avant de l'afficher, afin qu'ils ne sachent pas qu'ils parcourent la page d'accueil ? après avoir supprimé l'enregistrement du visiteur sur Weibo svip ? L'autre partie peut-elle toujours le voir après avoir supprimé l'enregistrement du visiteur sur Weibo svip ? le nombre de visiteurs, mais il n'affichera pas les visiteurs l'identifiant et l'avatar de l'utilisateur. 2. Les utilisateurs ordinaires et les utilisateurs VIP ne peuvent pas supprimer ou afficher les enregistrements d'accès. Ils peuvent uniquement voir combien de personnes les ont visités. 3. Les données d'accès Weibo seront mises à jour à 8h00 tous les jours. Si vous souhaitez supprimer les enregistrements d'accès, vous devez le faire.

Xiaoyi est devenu un agent intelligent ! L'intelligence native HarmonyOS NEXT Hongmeng ouvre une nouvelle ère de l'IA Xiaoyi est devenu un agent intelligent ! L'intelligence native HarmonyOS NEXT Hongmeng ouvre une nouvelle ère de l'IA Jun 22, 2024 am 01:56 AM

Le 21 juin, la Huawei Developer Conference 2024 (HDC2024) s'est à nouveau réunie au lac Songshan, à Dongguan. Lors de cette conférence, la chose la plus frappante est que HarmonyOSNEXT lance officiellement la version bêta pour les développeurs et les utilisateurs pionniers, et démontre de manière exhaustive les trois fonctionnalités innovantes « bouleversantes » d'HarmonyOSNEXT dans tous les scénarios, l'intelligence native et la sécurité native. Intelligence native HarmonyOSNEXT : ouvrir une nouvelle ère de l'IA Après avoir abandonné le framework Android, HarmonyOSNEXT est devenu un système d'exploitation véritablement indépendant d'Android et d'iOS, ce que l'on peut qualifier de renaissance sans précédent. Parmi ses nombreuses nouvelles fonctionnalités, l’intelligence native est sans aucun doute la nouvelle fonctionnalité qui peut le mieux apporter aux utilisateurs des sensations intuitives et des améliorations d’expérience.

See all articles