Android微信SDK API 調用教程

 最近一直在調用微信的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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章