ANDROID_MARS学习笔记_S04_001_OAUTH获取request_token
一、代码
1.xml
(1)main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello"
- />
- <Button
- android:id="@+id/getRequestTokenButtonId"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="获取未授权的Token"
- />
- </LinearLayout>
(2)AndroidManifest.xml
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="org.marsdroid.oauth01" android:versionCode="1"
- android:versionName="1.0">
- <uses-sdk android:minSdkVersion="10" />
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.READ_CONTACTS" />
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".OAuth01Activity" android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name=".PrepareRequestTokenActivity">
- <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="x-oauthflow" android:host="callback" />
- </intent-filter>
- </activity>
- </application>
- </manifest>
2.java
(1)OAuth01Activity.java
- package org.marsdroid.oauth01;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- public class OAuth01Activity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- startActivity(new Intent(this,PrepareRequestTokenActivity.class));
- }
- }
(2)Constants.java
- package org.marsdroid.oauth01;
- public class Constants {
- public static final String CONSUMER_KEY = "99e9494ff07e42489f4ace16b63e1f47";
- public static final String CONSUMER_SECRET = "154f6f9ab4c1cf527f8ad8ab1f8e1ec9";
- public static final String REQUEST_URL = "https://open.t.qq.com/cgi-bin/request_token";
- public static final String ACCESS_URL = "https://open.t.qq.com/cgi-bin/access_token";
- public static final String AUTHORIZE_URL = "https://open.t.qq.com/cgi-bin/authorize";
- public static final String ENCODING = "UTF-8";
- }
(3)PrepareRequestTokenActivity.java
- package org.marsdroid.oauth01;
- import oauth.signpost.OAuthConsumer;
- import oauth.signpost.OAuthProvider;
- import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
- import oauth.signpost.commonshttp.CommonsHttpOAuthProvider;
- import android.app.Activity;
- import android.os.Bundle;
- public class PrepareRequestTokenActivity extends Activity {
- private OAuthConsumer consumer;
- private OAuthProvider provider;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- consumer = new CommonsHttpOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);
- provider = new CommonsHttpOAuthProvider(Constants.REQUEST_URL, Constants.ACCESS_URL, Constants.AUTHORIZE_URL);
- new OAuthRequestTokenTask(this, consumer, provider).execute();
- }
- }
(4)OAuthRequestTokenTask.java
用异步任务
- package org.marsdroid.oauth01;
- import oauth.signpost.OAuthConsumer;
- import oauth.signpost.OAuthProvider;
- import android.content.Context;
- import android.os.AsyncTask;
- public class OAuthRequestTokenTask extends AsyncTask<Void, Void, Void>{
- private Context context;
- private OAuthConsumer consumer;
- private OAuthProvider provider;
- public OAuthRequestTokenTask(Context context, OAuthConsumer consumer,
- OAuthProvider provider) {
- super();
- this.context = context;
- this.consumer = consumer;
- this.provider = provider;
- }
- @Override
- protected Void doInBackground(Void... params) {
- // TODO Auto-generated method stub
- try {
- System.out.println("请求Request Token之前" + consumer.getToken());
- //用户授权要用此url
- final String url = provider.retrieveRequestToken(consumer, "null");
- System.out.println("请求Request Toker之后" + consumer.getToken());
- System.out.println("url---->" + url);
- } catch(Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return null;
- }
- }
ANDROID_MARS学习笔记_S04_001_OAUTH获取request_token的更多相关文章
- ANDROID_MARS学习笔记_S03_001_获取蓝牙匹配列表
一.代码 1.xml(1)AndroidManifest.xml 增加 <uses-permission android:name="android.permission.BLUETO ...
- ANDROID_MARS学习笔记_S04_001_OAuth简介
一.OAuth简介
- openresty 学习笔记二:获取请求数据
openresty 学习笔记二:获取请求数据 openresty 获取POST或者GET的请求参数.这个是要用openresty 做接口必须要做的事情.这里分几种类型:GET,POST(urlenco ...
- ANDROID_MARS学习笔记_S04_006_用获取access_token,access_token_secrect
一.代码流程 1.MainActivity会开启PrepareRequestTokenActivity 2.PrepareRequestTokenActivity会根据配置文件的CONSUMER_KE ...
- ANDROID_MARS学习笔记_S05_001_用SensorManager获取传感器
1. public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV ...
- ANDROID_MARS学习笔记_S04_007_从服务器获取微博数据时间线
一.代码 1.xml(1)activity_main.xml <?xml version="1.0" encoding="utf-8"?> < ...
- JDBC学习笔记(6)——获取自动生成的主键值&处理Blob&数据库事务处理
获取数据库自动生成的主键 [孤立的技术是没有价值的],我们这里只是为了了解具体的实现步骤:我们在插入数据的时候,经常会需要获取我们插入的这一行数据对应的主键值. 具体的代码实现: /** * 获取数据 ...
- struts2学习笔记--总结获取servletAPI的几种方式
struts2的Action放弃了request,response等ServletAPI,使得在业务层上更加独立,在有时候使用struts2进行Web开发的时候,不可避免的要在action中使用ser ...
- IOS学习笔记之获取Plist文件读取数据
@property(nonatomic,strong) NSArray *pic; //创建数组属性 @property(nonatomic,assign) int index; //创建索引属性 @ ...
随机推荐
- sharedPreference的奇怪bug
一定要清楚sp的结构,而且要知道是什么类型的.类型不对,会引起很多不知道的bug,比如本来是int类型的值,如果用String的类型去匹配,会让Activity开Activity Thread,不断地 ...
- MVC中,查询以异步呈现,分页不用异步的解决方案
MVC中,查询以异步呈现,分页不用异步的解决方案 这种需求,用一个ASPX页面和一个ASCX分部视图就可以解决了,ASPX提供对ASCX的引用,ASCX显示列表信息,ASPX主页面提供查询功能 < ...
- HTML解析引擎:Jumony 开源项目
Jumony Core首先提供了一个近乎完美的HTML解析引擎,其解析结果无限逼近浏览器的解析结果.不论是无结束标签的元素,可选结束标签的元素,或是标记属性,或是CSS选择器和样式,一切合法的,不合法 ...
- struts2基于Convention插件的约定映射使用
一.首先说明一点:所谓的基于Convention插件的约定优于配置的使用,并不是严格意义上的零配置,struts.xml文件并不能完全舍弃. 获得Convention插件功能,所必需的jar包有:|a ...
- C++ GUI Programming with Qt4 笔记 -- chap1
1. Hello Qt #include <QApplication> #include <QLabel> int main(int argc, char *argv[]){ ...
- Linux系统的启动流程以及做个小小的Linux
内核的作用 进程管理:进程间切换 内存管理:内存空间分割为内核空间和用户空间 IO管理:对底层硬件的使用必须由内来实现,不能由用户空间进程来实现 文件系统管理 ...
- jQuery如何检查某个元素在网页上是否存在
$("ID")获取的永远是对象,即使网页上没有此元素.因此当要用jQuery检查某个元素在网页上是否存在时,不能使用以下代码: if($("#ID")){ // ...
- sqlserver字符串转日期
declare @str varchar(15) declare @dt datetime select @str='2005-8-26' set @d ...
- Hibernate持久化对象
持久化类应遵循的规则: 有无参构造器,构造器的修饰符>=默认访问控制符 有标识属性,映射数据库表的主键,建议使用基本类型的包装类 每个成员有setter和getter 非final修饰的类 重写 ...
- BJDP结对编程活动
7月21日参与了 BJDP北京的活动 在北京首次参与能够参与动手编程活动,感觉挺不错的. 本次活动共有三项内容 1. 金锐分享单元测试的Mocking技术,20 mins 2. 伍 ...