最近一直在調用的API,卻發現一直調用不成功,糾結了好久,各方面找教程,找官方,官方裡的文檔也只是寫得很模糊,說是按三步走。
1、申請App_ID
2、填寫包名3、
擷取程式簽名的md5值,
這三步只要你走對了就能調通,可是大家都不知道有時候我們打包的keystore和我們打包的keystore擷取到的程式簽名的md5是不一樣的。我們在申請的時候填的程式簽名值是正式打包的,但我們在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
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://xiazai.jb51.net/201211/tools/gen_signature_jb51.rar
不知道大家是否有看通。如果再有疑問的話可以加我。希望此文章能協助到正在用API的Android碼農們。