2011年沈大海讲师Android的腾讯微博客户端源代码,实现oauth_verifier自动提取!

本文主要是介绍2011年沈大海讲师Android的腾讯微博客户端源代码,实现oauth_verifier自动提取!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如果大家开发过Android版的新浪微博客户端可以通过如下接口直接在客户端返回oauth_verifier

 

 以下是我加的方法,注意增加了userId和passwd参数,大小写userId的I是大写,该问题困扰了我1晚上。

l public String getAuthorizationVerifier(String uid,String pass) {
l         return httpClient.getAuthorizationURL() + "?oauth_token=" +    getToken()+"&userId="+uid+"&passwd="+pass+"&oauth_callback=json";
l    
l }
但是在腾讯中没有该方法,只能弹出页面,之后就跳转到了另一个url,而oauth_verifier在url中,不能通过代码直接获取,其实在Android中式可以解决的,如下图:
因为,Android中不同的URl可以由我们自定义的Activity组件来处理,而不一定是Webkit,实现方法如下:
编写入口Acitivity实现如下代码:
package com.qqtest;

import com.qq.weibo.OAuth;
import com.sdhjob.util.ConfigUtil;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.webkit.DownloadListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainTest extends Activity {
    /** Called when the activity is first created. */
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String key = ConfigUtil.getValue("qq.weibo.appKey");
  String secret = ConfigUtil.getValue("qq.weibo.appSecret");
  OAuth oAuth = new OAuth(key,secret);
WebView w=(WebView)this.findViewById(R.id.ok);
  // 运行完后注释掉这段 放开  32行到37行的代码
  String oauthToken = oAuth.getOauthToken();
  Log.d("qq","oauthToken="+oauthToken); 
  if( this.getIntent()!=null&&this.getIntent().getData()!=null)
  {
   Uri uri = this.getIntent().getData();
  //验证码
  String oauth_verifier = uri.getQueryParameter("oauth_verifier");
  Toast.makeText(this,"验证码"+oauth_verifier, 1000).show();
 
 }else
   
  if(oauthToken != null){
   final String url=" https://open.t.qq.com/cgi-bin/authorize?"+oauthToken; 
   Intent it=new Intent(Intent.ACTION_VIEW,Uri.parse(url));
   this.startActivity(it);
  }
   }
}
红色部分是怎么实现的呢,看androidmanifest .xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=" http://schemas.android.com/apk/res/android"
      package="com.qqtest"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainTest"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter> 
          
         <action android:name="android.intent.action.VIEW" /> 
        <category android:name="android.intent.category.DEFAULT" /> 
        <category android:name="android.intent.category.BROWSABLE" /> 
        <data android:scheme="qqweibook" /> 
        <data android:host="qqweibo.sdhjob" />
   
    </intent-filter> 
        </activity>
</application>

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
///
<data android:host是在请求腾讯的api时候加入的参数
oauth_callback = "qqweibook://qqweibo.sdhjob"; // —— 用户授权后的返回地址
///
至于怎么使用腾讯API不说了,你懂的............................................................................
源代码下载地址:
 http://download.csdn.net/source/3205035

这篇关于2011年沈大海讲师Android的腾讯微博客户端源代码,实现oauth_verifier自动提取!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/367904

相关文章

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom