Im Folgenden finden Sie eine Demo zum Generieren eines Tokens mithilfe des WeChat SDK direkt in Android. Dies kann eine überraschend schwierige Aufgabe sein, da online nur sehr wenig Dokumentation und Codebeispiele verfügbar sind. Ein Großteil der Dokumentation rund um WeChat ist auf Chinesisch, was das Debuggen sehr schwierig macht, wenn Sie auf Probleme stoßen. WeChat antwortet auch nie, wenn Sie eine schlechte Konfiguration haben, sodass Google nur sehr wenig übrig bleibt.
Dies ist eine vereinfachte Demo nur zum Anmelden. Das Folgende ist eine umfassendere Demo der meisten (aller) WeChat-Funktionen, die mir wirklich geholfen hat, die Anmeldung herauszufinden: https://github.com/cihm/WeChatDemo
Link zu einem Artikel, den ich über diese Erfahrung geschrieben habe: http://aaronbruckner.com/article_weChat.html
Um WeChat nutzen zu können, müssen Sie ein registrierter Entwickler sein. Gehen Sie zu https://open.weixin.qq.com. Ich werde dies nicht dokumentieren, da ich den Prozess nicht persönlich durchlaufen habe. Sie müssen eine mobile Anwendung erstellen, bei der Sie einige Details zu der von Ihnen erstellten Anwendung ausfüllen müssen, die mit WeChat interagieren soll. Beim Online-Lesen scheint es, dass Sie hier blockiert werden können, wenn Sie keine chinesische Telefonnummer haben, an die Sie einen Bestätigungscode senden können.
Sobald dies eingereicht und akzeptiert wurde, verfügen Sie über eine registrierte WeChat-Mobilanwendung mit einer WeChat-App-ID. Die App-ID ist wichtig, da WeChat damit die Anwendung identifiziert, die eine Autorisierung anfordert.
Ich konnte keinen Gradle-Import für das WeChat SDK finden. Auf der offiziellen Website finden Sie Anweisungen zum Importieren des SDK in den libs-Ordner Ihrer Anwendung. http://dev.wechat.com/wechatapi/installguide
Sie müssen WeChat einen gültigen Paketnamen und eine gültige Signatur für die Entwicklungsanwendung bereitstellen, die Sie zum Aufrufen von WeChat über das SDK verwenden möchten. Dies kann im Entwicklungsportal unter https://open.weixin.qq.com eingestellt werden. Verwenden Sie als Paketnamen den Paketnamen aus Ihrem Manifest.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.your.package.name">
...
</manifest>
Verwenden Sie für die Signatur den MD5-Hash des Schlüssels, der zum Signieren Ihres veröffentlichten APK verwendet wurde. Der einfachste Weg, dies zu tun, besteht darin, eine Signatur einzurichten, die immer für Ihre Debug-/Release-Builds verwendet wird. Wenn Sie in Ihrem Projekt über einen Java-Keystore verfügen, der einen Signaturschlüssel enthält, können Sie Ihrer App-Gradle-Datei Folgendes hinzufügen, um Ihre Debug-Version mit einer konstanten Signatur zu signieren:
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'
}
}
...
}
Wenn Sie keinen Set-Schlüssel zum Signieren von Debug-Builds verwenden, signiert Android Studio Ihr Entwickler-APK automatisch für Sie. Um zu bestimmen, welche MD5-Signatur für WeChat bereitgestellt werden soll, fand ich diesen Artikel hilfreich: http://blog.sanuker.com/?p=691. Es enthält einen Link zu einer chinesischen App, die Ihren MD5-Hash für eine bereitgestellte Anwendung abruft: https://github.com/mike623/cordova-WeChat-meteor-sharing/blob/master/README.md
Warnung: Dies ist ein zufälliger Link, den ich im Internet gefunden habe. Ich kann keine Zusicherungen machen, da ich nichts mit der Software zu tun habe.
Wenn Sie die Anwendung verwenden, geben Sie beim Ausführen Ihren Paketnamen im ersten Textfeld ein. Wenn Sie auf die erste Schaltfläche klicken, wird im zweiten Textfeld der MD5 für Ihre App angezeigt. Fügen Sie dies in WeChat ein.
Wenn Sie schließlich ein Token von WeChat erhalten, ist es ein Code, den Sie unter Verwendung Ihrer App-ID und Ihres Geheimnisses gegen ein Zugriffstoken eintauschen müssen. Das Geheimnis finden Sie im WeChat-Entwicklerportal. Um den Austausch abzuschließen, genügt ein einfacher Rest-Aufruf an eine WeChat-API.
API-Aufruf: https://api.wechat.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code Zusätzliche Informationen: http://admin.wechat.com/wiki/index.php?title=User_Profile_via_Web . Scrollen Sie nach unten zu „Zugriffstoken per Code erhalten“.
Sobald alles in einer Reihe steht, ist zum Generieren eines Tokens nur noch sehr wenig Code erforderlich. Wenn jedoch etwas nicht stimmt, werden Sie wahrscheinlich nie einen Übergang zu WeChat sehen, einen Fehler beim Laden von WeChat bei einem Übergang oder keine Antwort von WeChat, nachdem Sie Ihrer Anwendung Zugriff gewährt haben.
Es steht Ihnen frei, jeden Code aus diesem Beispiel zu verwenden, dies geschieht jedoch auf eigenes Risiko! WeChat ist sehr schwer zu navigieren.
Hinweis: Ich kann keine Fragen zu WeChat beantworten. Es ist zu lange her und hat zu viele Narben hinterlassen, um es noch einmal anzusehen.
Viel Glück!