Android微信SDK API 调用教程1
最近一直在调用微信的API,却发现一直调用不成功,纠结了好久,各方面找教程,找官方,官方里的文档也只是写得很模糊,说是按三步走。
1、申请App_ID
2、填写包名3、
获取程序签名的md5值,
这三步只要你走对了就能调通,可是大家都不知道有时候我们Eclipse调用的keystore和我们打包的keystore获取到的程序签名的md5是不一样的。而且是每一个keystore对应生成的apk的值都会不一样。我们在申请的时候填的程序签名值是正式打包的,但我们在eclipse部署上去的却是用的我们默认的debug.keystore.而这样导致的后果就是程序签名不一样,会一直调不通。甚至我们都不知道我们错在哪。
先说一下怎么部署微信官网下的demo吧:【下面引用的内容为微信官网】
微信对Android API调用是需要严格 的三个验证,只有app_id包名和程序签名完全对了的情况下才可以调得通。
如何运行sdkdemo工程
1、解压sdk demo工程压缩包,并导入到workspace,如下图:

2、选择Eclipse顶部菜单Window->Preferences,在弹出的对话框中,选择Android目录下的Build,如下图:

指定Custom debugkeystore选项的路径为sdk demo工程目录中的debug.keystore文件,如下图:

并应用该配置。
3、运行该sdk_sample工程。
好了,按以上三步走,你就能走通微信的DEMO,现在再来看我们自己的DEMO
1、custom Debugkeystore:换成我们自己的keystore

为方便你可以直接复制上面的default Debug keystore,然后接着走第二步
2、装上我们的应用到手机端,再去微信官网下载一个获取程序签名md5值的apk输入包名:

3、去微信后台申请我们调试的应用:

接着再写上示例代码中的代码:
- private Button btn_share;
- public static final String WX_APP_ID = "wxc85b9dbef61b3fe4";
- private IWXAPI api;
- private String text="testssss";
- @Override
- public void onCreate(BundlesavedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn_share = (Button)findViewById(R.id.btn_share);
- api = WXAPIFactory.createWXAPI(this, WX_APP_ID,false);
- btn_share.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- api.registerApp(WX_APP_ID);
- // 初始化一个WXTextObject对象
- WXTextObjecttextObj = newWXTextObject();
- textObj.text = text;
- // 用WXTextObject对象初始化一个WXMediaMessage对象
- WXMediaMessagemsg = newWXMediaMessage();
- msg.mediaObject = textObj;
- // 发送文本类型的消息时,title字段不起作用
- msg.title = "Will be ignored";
- msg.description = "sdddd";
- // 构造一个Req
- SendMessageToWX.Reqreq = newSendMessageToWX.Req();
- req.transaction = buildTransaction("text"); // transaction字段用于唯一标识一个请求
- req.message = msg;
- //req.scene = SendMessageToWX.Req.WXSceneTimeline ;
- // 调用api接口发送数据到微信
- api.sendReq(req);
- finish();
- }
- });
- }
- private StringbuildTransaction(finalString type) {
- return (type == null) ? String.valueOf(System.currentTimeMillis())
- :type + System.currentTimeMillis();
- }
至此,大功告成。千万别忘记你程序打包用的keysotre再用那个微信提供的程序打包获取到签名和你在eclpise程序部署获取到的签名是不一样的。我们可以再申请一个正式的应用,填写信息可以完全一样,但是只要改掉

和你的app_id
微信获取程序签名工具下载地址:http://open.weixin.qq.com/download/sdk/gen_signature.apk
不知道大家是否有看通。如果再有疑问的话可以加我。希望此文章能帮助到正在用微信API的Android码农们。
如需转载引用请注明出处:http://blog.csdn.net/jiahui524
Android微信SDK API 调用教程1的更多相关文章
- Android微信SDK API 调用教程
最近一直在调用微信的API,却发现一直调用不成功,纠结了好久,各方面找教程,找官方,官方里的文档也只是写得很模糊,说是按三步走. 1.申请App_ID 2.填写包名3. 获取程序签名的md5值, 这 ...
- Android微信SDK API 调用教程【转】
原文:http://blog.csdn.net/worker90/article/details/8211451 最近一直在调用微信的API,却发现一直调用不成功,纠结了好久,各方面找教程,找官方,官 ...
- Android 微信SDK图片分享(checkArgs fail, thumbData is invalid)
微信官网给的Demo中.图片的分享例子他是这么描述的: String url = "http://pic2.nipic.com/20090506/1478953_125254084_2.jp ...
- Android 微信SDK分享功能中的最全过程步骤分析
在前面有一章已经分析过怎么用官方的demo分享微信信息了,在这里我就不再多说,其中关于在自己应用分享说得很简单,本文作者也是经过一番折腾才弄成功,为了以后让大家都少走弯路,决定在这里从头到尾介绍怎么在 ...
- 微信 JS API 支付教程
最近一个项目中用到了微信开发,之前没有做过支付相关的东西,算是拿这个来练练手,刚开始接触支付时候很懵逼,加上微信支付开发文档本来就讲得不清楚,我是彻底蒙圈了,参考了很多代码之后,算是有一点思路了. 用 ...
- 微信企业号api调用频率
主动调用的频率限制 当你获取到AccessToken时,你的应用就可以成功调用企业号后台所提供的各种接口以管理或访问企业号后台的资源或给企业号成员发消息. 为了防止企业应用的程序错误而引发企业号服务器 ...
- android 微信 SDK 分享
1.资源依赖: https://open.weixin.qq.com/cgi-bin/showdocument?action=doc&id=open1419319167&t=0.613 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十七):个性化菜单接口说明
前不久微信上线了个性化菜单接口,Senparc.Weixin SDK也已经同步更新. 本次更新升级Senparc.Weixin.MP版本到v13.5.2,依赖Senparc.Weixin版本4.5.4 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明
这里所说的高级接口是指面向通过认证的服务号开通的高级功能. 高级功能大致可以分类为: 用户接口 分组接口 客服接口(有别于之前介绍的多客服) 群发接口 多媒体接口 二维码接口 模板消息接口(不是所有账 ...
随机推荐
- 用U盘作为启动盘,安装Yosemite
1.选择一个存贮空间大于Yosemite系统(Yosemite系统大概5.1G左右)的U盘,用磁盘工具(Disk Utility)对此磁盘进行分区,可以参照此链接处对U盘进行分区.如果用磁盘工具进行分 ...
- in_array函数的第三个参数 strict
看段代码 <?php $array = array('testing',0,'name'); var_dump($array); var_dump(in_array('foo', $array) ...
- String Reduction
问题出自这里 问题描述: Given a string consisting of a,b and c's, we can perform the following operation: Take ...
- poj 1724(有限制的最短路)
题目链接:http://poj.org/problem?id=1724 思路: 有限制的最短路,或者说是二维状态吧,在求最短路的时候记录一下花费即可.一开始用SPFA写的,900MS险过啊,然后改成D ...
- Hortworks Hadoop生态圈简介
Hortworks 作为Apache Hadoop2.0社区的开拓者,构建了一套自己的Hadoop生态圈,包括存储数据的HDFS,资源管理框架YARN,计算模型MAPREDUCE.TEZ等,服务于数据 ...
- gcc 优化选项 -O1 -O2 -O3 -Os 优先级
http://hi.baidu.com/xiaole10368/item/7cea9b1369cc240db88a1a5c 少优化->多优化: O0 -->> O1 -->&g ...
- WordPress主题制作教程4:调用指定页面内容
假设页面page_id=86 $page_id = 86; echo "标题:".get_post($page_id)->post_title; echo "内容: ...
- Tomcat常见内存溢出的解决办法
PermGen space错误解决方法 在看下文之前,首先要确认意见事情,就是你是如何启动tomcat的,我们在平时的开发环境当中,都是通过startup.bat方式启动tomcat的,那么你按照下面 ...
- log4j打印日志配置
1.所需的jar包 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifa ...
- Java:进制转换
进制转换是常常需要的一种数据处理,在java中的一些类中封装了具有转换功能的方法,这个不做介绍.其实,进制之间的转化是通过先位异或&,再位移动>>>的方式实现的. 例如,对于 ...