项目源代码:http://download.csdn.net/detail/mrlixirong/3804385

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;
/**
*
* @author mrlixirong
*
* 2011-11-16
*
*/
public class WeiboQQTestActivity extends Activity {
WeiboQQTestActivity wbqqta=this;
RelativeLayout mainView=null;
Button requestButton=null;
Button verifierButton=null;
EditText et=null;
Button accessButton=null;
TextView tv=null;
Button addButton=null;
Oauth oauth=null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始化oauth=new Oauth("你的key","你的secret")
oauth=new Oauth("","");
//
ui_init();
setContentView(mainView);
}
void ui_init(){
mainView=new RelativeLayout(this);
requestButton=new Button(this);
requestButton.setId(101);
requestButton.setTextSize(18);
requestButton.setText("gerRequest");
RelativeLayout.LayoutParams lp1=new RelativeLayout.LayoutParams(-2,-2);
lp1.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
requestButton.setLayoutParams(lp1);
mainView.addView(requestButton);
verifierButton=new Button(this);
verifierButton.setId(102);
verifierButton.setTextSize(18);
verifierButton.setText("getVerifier");
RelativeLayout.LayoutParams lp2=new RelativeLayout.LayoutParams(-2,-2);
lp2.addRule(RelativeLayout.CENTER_HORIZONTAL);
verifierButton.setLayoutParams(lp2);
mainView.addView(verifierButton);
accessButton=new Button(this);
accessButton.setId(103);
accessButton.setTextSize(18);
accessButton.setText("getAccess");
RelativeLayout.LayoutParams lp3=new RelativeLayout.LayoutParams(-2,-2);
lp3.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
accessButton.setLayoutParams(lp3);
mainView.addView(accessButton);
addButton=new Button(this);
addButton.setId(104);
addButton.setTextSize(18);
addButton.setText("发送一条信息");
RelativeLayout.LayoutParams lp4=new RelativeLayout.LayoutParams(-2,-2);
lp4.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
lp4.addRule(RelativeLayout.CENTER_HORIZONTAL);
addButton.setLayoutParams(lp4);
mainView.addView(addButton);
et=new EditText(this);
et.setId(105);
et.setSingleLine();
RelativeLayout.LayoutParams lp5=new RelativeLayout.LayoutParams(-1,-2);
lp5.addRule(RelativeLayout.BELOW,accessButton.getId());
et.setLayoutParams(lp5);
mainView.addView(et);
tv=new TextView(this);
tv.setId(106);
tv.setText("1、点击“getRequest”获取reqeust_token\n");
RelativeLayout.LayoutParams lp6=new RelativeLayout.LayoutParams(-1,-2);
lp6.addRule(RelativeLayout.BELOW,et.getId());
tv.setLayoutParams(lp6);
mainView.addView(tv);
OnClickListener ocl=new OnClickListener(){
@Override
public void onClick(View v) {
if(v==requestButton){
tv.setText("1、点击“getRequest”获取reqeust_token\n");
if(oauth.oauth_consumer_key=="" || oauth.oauth_consumer_secret==""){
tv.append("请在WeiboQQTestActivity里onCreate()函数,正确填写你的key和secret\n");
}else{
oauth=OauthClient.requestToken(oauth,wbqqta);
if(oauth.status){
tv.append("获取request_token成功\n");
tv.append("request_token="+oauth.oauth_token+"\n");
tv.append("request_token_secret="+oauth.oauth_token_secret+"\n");
tv.append("2、点击“getVerifier”打开浏览器登陆qq获取verfier。\n");
tv.append("3、获取verfier后,返回将其填入输入框。\n");
tv.append("4、点击“getAccess”,获取access_token\n");
}else{
tv.append("获取request_token失败\n");
}
}
}else if(v==verifierButton){
if(oauth.status){
Uri uri = Uri.parse("https://open.t.qq.com/cgi-bin/authorize?oauth_token="+oauth.oauth_token);
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
}else{
tv.append("请先获取request_token\n");
}
}else if(v==accessButton){
if(oauth.status && et.getText().toString().length()==6){
oauth.oauth_verifier=et.getText().toString();
oauth=OauthClient.accessToken(oauth,wbqqta);
if(oauth.status){
tv.append("获取access_token成功\n");
tv.append("access_token="+oauth.oauth_token+"\n");
tv.append("access_token_secret="+oauth.oauth_token_secret+"\n");
tv.append("5、点击“发送一条信息”发布微博\n");
}else{
tv.append("获取request_token失败\n");
}
}else{
tv.append("请先获取request_token,并输入正确的verifier\n");
}
}else if(v==addButton){
//ip、jing、wei都可以为空
tv.append(WeiboQQAPI.sendMessage(oauth, "这是1条测试信息", "", "", "", wbqqta));
}
}
};
requestButton.setOnClickListener(ocl);
verifierButton.setOnClickListener(ocl);
accessButton.setOnClickListener(ocl);
addButton.setOnClickListener(ocl);
}
}

Android腾讯微博开放平台入门(五)综合测试相关推荐

  1. 腾讯微博开放平台 android登录界面显示为pc登录界面 解决方案

    腾讯微博开放平台的登录授权一直没有官方的sdk,下载的sdk开始正常使用无问题,但是某天,我们用htc g10  android2.3(有刷过机)使用腾讯微博账号登录,发现登录界面显示为pc上的授权页 ...

  2. 腾讯微博开放平台授权教程(1)

    看到坛子里众多开发者问了很多授权问题,官方又没有及时解答,主要是他的API文档有些细节不够明确,经过几天的摸索,我将摸索到的经验以图文及代码的形式写出来,希望能抛砖引玉. 一.前言 腾讯微博开放平台授 ...

  3. 微博开放平台应用申请(Android签名填写规则)

    2019独角兽企业重金招聘Python工程师标准>>> 在微博开放平台新建应用,需要填写基本信息Android签名信息一栏中,很多人不知道这里填写什么 需要填写:android签名信 ...

  4. 新浪与腾讯的开放平台对比

    做了金庸问答分别在腾讯和新浪的开放平台上线,了解了一些WEB开发的皮毛,对腾讯和新浪两个开放平台也有了一些认识,下面就我能力范围内对两个平台进行一番比对. 首先说云服务的平台,注意,说的不是开放平台. ...

  5. 新浪与腾讯的开放平台对比(下)

    应用审核速度:腾讯完胜.在我前面写的菜鸟从零开始的第一个应用上线记中就写过了,我先提交新浪审核,然后才开始往腾讯移植,结果腾讯这边我三次审核后都上线了新浪的审核居然还没下来,工作效率差的不是一点.在新 ...

  6. 关于微博开放平台Oauth2.0接入网站应用

    关于什么是微博开放平台及微博开放平台能做什么,咱就不做搜索引擎的搬运工了 这里直接给个链接介绍:微博开放平台 本文只是抛砖引玉,讲讲微博开放平台的基本用法,适合没接触过开放平台的朋友入门学习,老鸟就略 ...

  7. 【49.Auth2.0认证与授权过程-微博开放平台认证授权过程-百度开放平台认证授权过程-社交登录实现(微博授权)-分布式Session问题与解决方案-SpringSession整合-Redis】

    一.知识回顾 [0.三高商城系统的专题专栏都帮你整理好了,请点击这里!] [1-系统架构演进过程] [2-微服务系统架构需求] [3-高性能.高并发.高可用的三高商城系统项目介绍] [4-Linux云 ...

  8. 【NLP】Pyhon+讯飞开放平台:​手把手带你写一个智能语音播报系统

    手把手带你写一个智能语音播报系统. 微信扫码登陆讯飞开放平台:https://www.xfyun.cn/ 完成个人认证. 在控制台创建应用,注意应用名称全库查重,很容易跟别人重复. 可查看到pytho ...

  9. 腾讯Q+开放平台,相信又是一次成功的模仿

    今天看到两则新闻,中国国内两家互联网大佬都在推自己的开放平台: 腾讯CTO谈Q+开放平台:7月上线. 和 360推360°开放平台:建10亿元创新基金 .从文章的内容来看,Q+的本质就是做一个应用商店 ...

  10. 微博开放平台SDK 移动端的H5方式授权过程分析

    最近公司要做一个sdk,仿照微博开放平台.要写移动sdk,并且采用H5页面进行授权.看了几天微博SDK源码,终于理解了微博如何做到通过H5页面授权,并回调移动端的方法返回授权码,access Toke ...

最新文章

  1. 论机器学习领域的内卷
  2. 多视图立体匹配论文分享CasMVSNet
  3. Struts2 分割字符串标签s:generator
  4. 徘徊于win和ubuntu
  5. 077_访问者的信息
  6. esp8266 lcd 天气_8266WIFI加LCD显示时间及天气pm25
  7. 机器学习线性回归_机器学习-线性回归
  8. 指针都没搞懂,还能算得上 C++ 老司机?
  9. android4.0 菜单,Android 4.0.4系统曝光 增新Power菜单
  10. C++新手入门学习笔记(跟着敲)
  11. ubuntu7.10下配置java 6和mysql
  12. 使用postman下载文件
  13. 网易云音乐打卡听歌300首源码
  14. 视频教程-思科CCNP路由实验专题--EIGRP篇【适用于思科CCNA、CCNP】-网络技术
  15. 基于面积对比法的图形匹配
  16. JEECMS安装部署方法以及使用说明教程
  17. sys fs的原理和使用
  18. 震惊!黄光裕、李嘉诚、马化腾甚至股市中的“野蛮人”都出自潮汕帮(附股)
  19. ipp协议 服务器,IPP远程服务
  20. React的render不是纯函数? triggering nested component updates from render is not allowed

热门文章

  1. 计算机网络自顶向下方法
  2. 数据结构面试常见问题总结
  3. pandas填充空数组_Pandas 数据处理:空值清理、联级、合并、缺省空值填充
  4. 人工智能系统的形式化验证技术研究进展与趋势
  5. 软件可靠性方法 学习笔记
  6. kafka阿里云镜像下载
  7. 随机过程在计算机领域的应用,随机过程与排队论——及其在计算机领域中的应用.doc...
  8. 浅谈数据库操作的左连接、右连接、内外连接的作用
  9. matlab的开方算法_matlab最大公约数 三种算法
  10. ANSYS APDL学习(6):ANSYS APDL部分命令流介绍