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

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

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

下载地址~ 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
Nach dem Login kopieren

值得注意的是这边的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"
 }
Nach dem Login kopieren

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

步骤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()); 
Nach dem Login kopieren
WebviewClient
Nach dem Login kopieren
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>
Nach dem Login kopieren

这个方法集合了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>
Nach dem Login kopieren


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();
		}
Nach dem Login kopieren


源码之后上传。

联系 zhangnianxiang@gmail.com


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So durchsuchen Sie frühere Weibos nach Datum auf Weibo_So durchsuchen Sie frühere Weibos nach Datum auf Weibo So durchsuchen Sie frühere Weibos nach Datum auf Weibo_So durchsuchen Sie frühere Weibos nach Datum auf Weibo Mar 30, 2024 pm 07:26 PM

1. Öffnen Sie zunächst den mobilen Webbrowser, suchen Sie nach der Weibo-Webversion und klicken Sie nach der Eingabe auf die Avatar-Schaltfläche in der oberen linken Ecke. 2. Klicken Sie dann oben rechts auf Einstellungen. 3. Klicken Sie in den Einstellungen auf die Option zum Versionswechsel. 4. Wählen Sie dann im Versionsschalter die Option Farbversion aus. 5. Klicken Sie auf Suchen, um die Suchseite aufzurufen. 6. Klicken Sie nach der Eingabe der Schlüsselwörter auf „Personen suchen“. 7. Wenn die Suchabschlussoberfläche angezeigt wird, klicken Sie auf Filter. 8. Geben Sie abschließend das konkrete Datum in die Spalte „Veröffentlichungszeit“ ein und klicken Sie auf „Filter“.

Die große Model-App Tencent Yuanbao ist online! Hunyuan wird zu einem Allround-KI-Assistenten aufgerüstet, der überall hin mitgenommen werden kann Die große Model-App Tencent Yuanbao ist online! Hunyuan wird zu einem Allround-KI-Assistenten aufgerüstet, der überall hin mitgenommen werden kann Jun 09, 2024 pm 10:38 PM

Am 30. Mai kündigte Tencent ein umfassendes Upgrade seines Hunyuan-Modells an. Die auf dem Hunyuan-Modell basierende App „Tencent Yuanbao“ wurde offiziell eingeführt und kann in den App-Stores von Apple und Android heruntergeladen werden. Im Vergleich zur Hunyuan-Applet-Version in der vorherigen Testphase bietet Tencent Yuanbao Kernfunktionen wie KI-Suche, KI-Zusammenfassung und KI-Schreiben für Arbeitseffizienzszenarien. Yuanbaos Gameplay ist außerdem umfangreicher und bietet mehrere Funktionen für KI-Anwendungen , und neue Spielmethoden wie das Erstellen persönlicher Agenten werden hinzugefügt. „Tencent strebt nicht danach, der Erste zu sein, der große Modelle herstellt.“ Liu Yuhong, Vizepräsident von Tencent Cloud und Leiter des großen Modells von Tencent Hunyuan, sagte: „Im vergangenen Jahr haben wir die Fähigkeiten des großen Modells von Tencent Hunyuan weiter gefördert.“ . In die reichhaltige und umfangreiche polnische Technologie in Geschäftsszenarien eintauchen und gleichzeitig Einblicke in die tatsächlichen Bedürfnisse der Benutzer gewinnen

So entsperren Sie jemanden, der auf Weibo blockiert ist_So entsperren Sie Weibo So entsperren Sie jemanden, der auf Weibo blockiert ist_So entsperren Sie Weibo Mar 30, 2024 am 09:51 AM

1. Klicken Sie unten rechts in der Weibo-App auf [Mein], um Ihre persönliche Homepage aufzurufen. 2. Klicken Sie dann auf das Zahnradsymbol in der oberen rechten Ecke. 3. Zu diesem Zeitpunkt rufen wir die Einstellungsseite auf. Wählen Sie hier [Blockeinstellungen] aus, um sie aufzurufen. 4. In den Blockierungseinstellungen können wir die von uns blockierten Freunde sehen, darauf tippen und in den Popup-Optionen auf [Entsperren] klicken. 5. Oder Benutzer können direkt nach Weibo-Benutzern suchen, um die blockierte Benutzer-Homepage aufzurufen, und oben rechts auf [...] klicken, um die schwarze Liste zu entfernen.

So löschen Sie die Entwurfsbox von „Weibo'_Tutorial zum Löschen der Entwurfsbox von „Weibo' So löschen Sie die Entwurfsbox von „Weibo'_Tutorial zum Löschen der Entwurfsbox von „Weibo' Mar 30, 2024 pm 12:46 PM

1. Öffnen Sie zunächst Weibo, klicken Sie auf „Mein“ und dann auf das Entwurfsfeld. 2. Drücken Sie dann lange auf einen Entwurf und klicken Sie, um das Entwurfsfeld zu leeren oder den Entwurf zu löschen. 3. Klicken Sie abschließend auf OK.

So deaktivieren Sie den Weibo-Live-Modus_So deaktivieren Sie den Weibo-Live-Modus So deaktivieren Sie den Weibo-Live-Modus_So deaktivieren Sie den Weibo-Live-Modus Mar 30, 2024 am 10:16 AM

1. Öffnen Sie zunächst Weibo, klicken Sie auf „Suchen“ und dann auf „Weitere aktuelle Suchanfragen“. 2. Wählen Sie dann eine Schnellsuche zur Eingabe aus. 3. Rufen Sie dann den Live-Modus für Hot Search-Kommentare auf, suchen Sie die Standardversion in der oberen rechten Ecke und klicken Sie darauf. 4. Abschließend können Sie zum Standard-Kommentarbereich der Hot-Suche zurückkehren. Wenn Sie weiterhin den Live-Kommentarbereich anzeigen möchten, klicken Sie auf die Live-Version in der oberen rechten Ecke. Hinweis: Nur wenn viele Echtzeitkommentare vorhanden sind, wird automatisch in den Live-Modus gewechselt. Einige Hot-Suchen gelangen automatisch in den Live-Modus. Im Allgemeinen finden Direktsuchen im Standardmodus statt.

So posten Sie Videos auf Weibo, ohne die Bildqualität zu komprimieren_So posten Sie Videos auf Weibo, ohne die Bildqualität zu komprimieren So posten Sie Videos auf Weibo, ohne die Bildqualität zu komprimieren_So posten Sie Videos auf Weibo, ohne die Bildqualität zu komprimieren Mar 30, 2024 pm 12:26 PM

1. Öffnen Sie zunächst Weibo auf Ihrem Mobiltelefon und klicken Sie unten rechts auf [Ich] (wie im Bild gezeigt). 2. Klicken Sie dann oben rechts auf [Zahnrad], um die Einstellungen zu öffnen (wie im Bild gezeigt). 3. Suchen und öffnen Sie dann [Allgemeine Einstellungen] (wie im Bild gezeigt). 4. Geben Sie dann die Option [Video Follow] ein (wie im Bild gezeigt). 5. Öffnen Sie dann die Einstellung [Video-Upload-Auflösung] (wie im Bild gezeigt). 6. Wählen Sie abschließend [Originalbildqualität] aus, um eine Komprimierung zu vermeiden (wie im Bild gezeigt).

Wenn Weibo svip Besucherdatensätze löscht, kann die andere Partei diese trotzdem sehen? Wenn Weibo svip Besucherdatensätze löscht, kann die andere Partei diese trotzdem sehen? Apr 02, 2024 am 08:04 AM

Sobald Weibo-Benutzer die SVIP-Funktion aktivieren, können sie Besucherdatensätze verwalten. Wenn sie die Homepage eines Fremden besuchen, können sie diese vor der Anzeige löschen, sodass sie nicht wissen, dass sie auf der Homepage surfen. Kann die andere Partei sie trotzdem sehen? Kann die andere Partei es nach dem Löschen des Besucherdatensatzes auf Weibo Svip noch sehen? die Anzahl der Besucher, die ID und der Avatar des Besuchers werden jedoch nicht angezeigt. 2. Normale Benutzer und VIP-Benutzer können Zugriffsdatensätze nicht löschen oder anzeigen. Sie können nur sehen, wie viele Personen sie besucht haben. 3. Die Weibo-Zugriffsdaten werden täglich um 8:00 Uhr aktualisiert. Wenn Sie Zugriffsdatensätze löschen möchten, müssen Sie dies tun

Xiaoyi wurde zu einem intelligenten Agenten! Die native Intelligenz von HarmonyOS NEXT Hongmeng eröffnet eine neue KI-Ära Xiaoyi wurde zu einem intelligenten Agenten! Die native Intelligenz von HarmonyOS NEXT Hongmeng eröffnet eine neue KI-Ära Jun 22, 2024 am 01:56 AM

Am 21. Juni fand erneut die Huawei Developer Conference 2024 (HDC2024) in Songshan Lake, Dongguan, statt. Das Auffälligste an dieser Konferenz ist, dass HarmonyOSNEXT offiziell die Betaversion für Entwickler und Pionierbenutzer startet und die drei „königsbrechenden“ innovativen Funktionen von HarmonyOSNEXT in allen Szenarien, nativer Intelligenz und nativer Sicherheit umfassend demonstriert. Native Intelligenz von HarmonyOSNEXT: Beginn einer neuen KI-Ära Nach der Abkehr vom Android-Framework ist HarmonyOSNEXT zu einem wirklich unabhängigen Betriebssystem unabhängig von Android und iOS geworden, was als beispiellose Wiedergeburt bezeichnet werden kann. Unter den vielen neuen Funktionen ist native Intelligenz zweifellos die neue Funktion, die den Benutzern am besten intuitive Gefühle und Erfahrungsverbesserungen vermitteln kann.

See all articles