以下是在android中直接使用微信SDK產生token的demo。這可能是一項非常困難的任務,因為網路上的文件和程式碼範例非常少。微信的大部分文件都是中文的,如果遇到任何問題,調試會變得非常困難。如果你的配置不好,微信也不會回應,留給Google的時間很少。
這是一個僅用於登入的簡化演示。以下是大多數(所有)微信功能的更全面的演示,確實幫助我弄清楚了登錄:https://github.com/cihm/WeChatDemo
連結到我寫的關於這次經歷的文章:http://aaronbruckner.com/article_weChat.html
要使用微信,您必須是註冊開發者。請造訪https://open.weixin.qq.com。我不會記錄這一點,因為我沒有親自經歷過這個過程。您必須創建一個行動應用程序,該應用程式要求您填寫有關您正在創建的將與微信互動的應用程式的一些詳細資訊。從線上閱讀看來,如果您沒有可以發送驗證碼的中國電話號碼,您可能會被封鎖。
提交並接受後,您將擁有一個帶有微信應用程式 ID 的註冊微信行動應用程式。應用程式 ID 很重要,因為微信透過它來識別請求授權的應用程式。
我找不到微信SDK的gradle導入。他們的官方網站提供了有關如何將其 SDK 導入應用程式的 libs 資料夾中的說明。 http://dev.wechat.com/wechatapi/installguide
您必須向微信提供您將用於透過 SDK 呼叫微信的開發應用程式的有效套件名稱和簽名。可以在開發入口 https://open.weixin.qq.com 中設定。對於套件名稱,請使用清單中的套件名稱。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.your.package.name">
...
</manifest>
對於簽名,請使用用於對已發布的 APK 進行簽署的金鑰的 MD5 雜湊值。最簡單的方法是設定一個始終用於調試/發布版本的簽名。如果您的專案中有一個保存簽署金鑰的 java 金鑰庫,則可以將以下內容新增至應用程式 gradle 檔案中,以使用常數簽章對偵錯版本進行簽章:
android {
...
// Keystore located in root project folder. Google can show many examples on how to generate keystores with signatures
signingConfigs {
debug {
storeFile file('keystore.jks')
storePassword 'password'
keyAlias 'weChatDebug'
keyPassword 'password'
}
}
...
}
如果您不使用設定金鑰來簽署偵錯版本,android studio 會自動為您簽署您的開發 APK。為了確定向微信提供什麼 MD5 簽名,我發現這篇文章很有用:http://blog.sanuker.com/?p=691。它包含一個指向中文應用程式的鏈接,該應用程式可以提取所提供應用程式的 MD5 哈希值:https://github.com/mike623/cordova-WeChat-meteor-sharing/blob/master/README.md
警告這是我在互聯網上找到的隨機鏈接,不做任何承諾,因為我沒有參與該軟體。
如果您使用該應用程序,則在運行它時,請在第一個文字欄位中提供套件名稱。點擊第一個按鈕將在第二個文字欄位中顯示您的應用程式的 MD5。將此貼至微信。
當您最終從微信獲得令牌時,您必須使用您的應用程式 ID 和金鑰交換存取權杖。這個秘密可以在微信開發者入口網站中找到。只需簡單呼叫微信API即可完成交換。
API呼叫:https://api.wechat.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code 其他資訊:http://admin.wechat.com/wiki/index.php?title=User_Profile_via_Web_Profile_via 。向下捲動至「透過代碼取得存取令牌」。
一旦一切準備就緒,產生令牌所需的程式碼就很少了。但是,如果出現任何問題,您可能永遠不會看到任何到微信的轉換,如果發生轉換,則無法加載微信,或者在您授予應用程式存取權限後微信沒有任何回應。
您可以自由使用此範例中的任何程式碼,但需要您自擔風險!微信很難導航。
註:我無法回答任何有關微信的問題。時間太久了,傷痕累累,無法再看一次。
祝你好運!