关于新浪微博与腾讯微博从Oauth1.0升级到Oauth2.0的过程
下载地址~ 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
Salin selepas log masuk
- 值得注意的是这边的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" }
Salin selepas log masuk
- 这些数据都是要做数据持久化管理的。
- 腾讯微博返回稍有不同,但是并不影响
-
- 步骤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());
Salin selepas log masukWebviewClient
Salin selepas log masukclass 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>
Salin selepas log masuk
这个方法集合了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>
Salin selepas log masuk
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(); }
Salin selepas log masuk
源码之后上传。
联系 zhangnianxiang@gmail.com

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



1. Mula-mula buka penyemak imbas web mudah alih, cari versi web Weibo, dan klik butang avatar di penjuru kiri sebelah atas selepas masuk. 2. Kemudian klik Tetapan di penjuru kanan sebelah atas. 3. Klik pilihan penukaran versi dalam tetapan. 4. Kemudian pilih pilihan versi warna dalam suis versi. 5. Klik Cari untuk memasuki halaman carian. 6. Selepas memasukkan kata kunci, klik Cari Orang. 7. Apabila antara muka penyelesaian carian muncul, klik Penapis. 8. Akhir sekali, masukkan tarikh tertentu dalam lajur masa keluaran dan klik Penapis.

Pada 30 Mei, Tencent mengumumkan peningkatan menyeluruh model Hunyuannya Apl "Tencent Yuanbao" berdasarkan model Hunyuan telah dilancarkan secara rasmi dan boleh dimuat turun dari kedai aplikasi Apple dan Android. Berbanding dengan versi applet Hunyuan dalam peringkat ujian sebelumnya, Tencent Yuanbao menyediakan keupayaan teras seperti carian AI, ringkasan AI, dan penulisan AI untuk senario kecekapan kerja untuk senario kehidupan harian, permainan Yuanbao juga lebih kaya dan menyediakan pelbagai ciri , dan kaedah permainan baharu seperti mencipta ejen peribadi ditambah. "Tencent tidak akan berusaha untuk menjadi yang pertama membuat model besar, Liu Yuhong, naib presiden Tencent Cloud dan orang yang bertanggungjawab bagi model besar Tencent Hunyuan, berkata: "Pada tahun lalu, kami terus mempromosikan keupayaan untuk Model besar Tencent Hunyuan Dalam teknologi Poland yang kaya dan besar dalam senario perniagaan sambil mendapatkan cerapan tentang keperluan sebenar pengguna

1. Klik [Saya] di penjuru kanan sebelah bawah apl Weibo untuk memasuki halaman utama peribadi anda. 2. Kemudian, klik ikon gear di penjuru kanan sebelah atas. 3. Pada masa ini, kami memasuki halaman tetapan, pilih [Seting Sekat] di sini untuk masuk. 4. Dalam tetapan penyekatan, kita boleh melihat rakan yang telah kita sekat, ketik padanya dan klik [Nyahsekat] dalam pilihan pop timbul. 5. Atau pengguna boleh terus mencari pengguna Weibo untuk memasuki halaman utama pengguna yang disekat, dan klik [...] di bahagian atas sebelah kanan untuk mengalih keluar senarai hitam.

1. Mula-mula buka Weibo, klik pada Saya, dan klik pada kotak draf. 2. Kemudian tekan lama mana-mana draf dan klik untuk mengosongkan kotak draf atau memadam draf. 3. Akhir sekali klik OK.

1. Mula-mula buka Weibo, klik Cari dan klik Lagi Carian Hangat. 2. Kemudian pilih carian panas untuk masuk. 3. Kemudian masukkan mod langsung ulasan carian panas, cari dan klik versi standard di penjuru kanan sebelah atas. 4. Akhir sekali, anda boleh kembali ke kawasan ulasan standard carian panas Jika anda ingin terus melihat kawasan ulasan langsung, klik versi langsung di penjuru kanan sebelah atas. Nota: Hanya apabila terdapat banyak ulasan masa nyata ia akan memasuki mod langsung secara automatik Sesetengah carian panas akan memasuki mod langsung secara automatik. Umumnya, carian panas berada dalam mod standard.

1. Mula-mula buka Weibo pada telefon mudah alih anda dan klik [Saya] di sudut kanan bawah (seperti yang ditunjukkan dalam gambar). 2. Kemudian klik [Gear] di penjuru kanan sebelah atas untuk membuka tetapan (seperti yang ditunjukkan dalam gambar). 3. Kemudian cari dan buka [Tetapan Umum] (seperti yang ditunjukkan dalam gambar). 4. Kemudian masukkan pilihan [Video Follow] (seperti yang ditunjukkan dalam gambar). 5. Kemudian buka tetapan [Video Upload Resolution] (seperti yang ditunjukkan dalam gambar). 6. Akhir sekali, pilih [Kualiti Imej Asal] untuk mengelakkan pemampatan (seperti yang ditunjukkan dalam gambar).

Sebaik sahaja pengguna Weibo mengaktifkan fungsi SVIP, mereka boleh mengurus rekod pelawat, dan jika mereka melawat halaman utama orang yang tidak dikenali, mereka boleh memadamkannya sebelum memaparkannya, supaya mereka tidak tahu bahawa mereka sedang menyemak imbas halaman utama ? Bolehkah pihak yang satu lagi melihat itu selepas memadam rekod pelawat di Weibo svip? Bolehkah pihak lain melihatnya selepas memadamkan rekod pelawat di Weibo svip 1. Selepas memadamkan rekod pelawat pada svip, pihak yang satu lagi tidak dapat melihatnya bilangan pelawat, tetapi ia tidak akan menunjukkan ID pengguna dan avatar. 2. Pengguna biasa dan pengguna VIP tidak boleh memadam atau melihat rekod akses Mereka hanya boleh melihat bilangan orang yang telah melawati mereka. 3. Data akses Weibo akan dikemas kini pada 8:00 setiap hari Jika anda ingin memadam rekod akses, anda perlu

Pada 21 Jun, Persidangan Pembangun Huawei 2024 (HDC2024) berkumpul semula di Tasik Songshan, Dongguan. Pada persidangan ini, perkara yang paling menarik perhatian ialah HarmonyOSNEXT secara rasminya melancarkan Beta untuk pembangun dan pengguna perintis, dan secara komprehensif menunjukkan tiga ciri inovatif HarmonyOSNEXT yang "menghancurkan raja" dalam semua senario, perisikan asli dan keselamatan asli. Perisikan asli HarmonyOSNEXT: Membuka era AI baharu Selepas meninggalkan rangka kerja Android, HarmonyOSNEXT telah menjadi sistem pengendalian yang benar-benar bebas daripada Android dan iOS, yang boleh dipanggil kelahiran semula yang tidak pernah berlaku sebelum ini. Di antara banyak ciri baharunya, kecerdasan asli tidak diragukan lagi merupakan ciri baharu yang terbaik boleh membawa perasaan intuitif pengguna dan mengalami peningkatan.
