Ниже приведена демонстрация того, как сгенерировать токен с помощью WeChat SDK непосредственно в Android. Это может оказаться на удивление сложной задачей, поскольку в Интернете очень мало документации и примеров кода. Большая часть документации по WeChat написана на китайском языке, что очень затрудняет отладку, если у вас возникнут какие-либо проблемы. WeChat также никогда не отвечает, если у вас плохая конфигурация, и Google почти ничего не оставляет.
Это упрощенная демонстрация только для входа в систему. Ниже приведена более полная демонстрация большинства (всех) функций WeChat, которая действительно помогла мне разобраться с входом в систему: https://github.com/cihm/WeChatDemo.
Ссылка на статью, которую я написал об этом опыте: http://aaronbruckner.com/article_weChat.html.
Чтобы использовать WeChat, вы должны быть зарегистрированным разработчиком. Перейдите на https://open.weixin.qq.com. Я не буду документировать это, поскольку лично не проходил через этот процесс. Вам нужно будет создать мобильное приложение, которое потребует от вас указать некоторые сведения о создаваемом вами приложении, которое будет взаимодействовать с WeChat. Судя по онлайн-чтению, вас могут заблокировать здесь, если у вас нет китайского номера телефона, на который можно отправить код подтверждения.
Как только оно будет отправлено и принято, у вас будет зарегистрированное мобильное приложение WeChat с идентификатором приложения WeChat. Идентификатор приложения важен, поскольку именно с его помощью WeChat идентифицирует приложение, запрашивающее авторизацию.
Мне не удалось найти импорт Gradle для WeChat SDK. На их официальном сайте есть инструкции по импорту их SDK в папку libs вашего приложения. http://dev.wechat.com/wechatapi/installguide
Вы должны предоставить WeChat действительное имя пакета и подпись для приложения разработки, которое вы будете использовать для вызова WeChat через 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>
Для подписи используйте хеш MD5 ключа, использованного для подписи опубликованного APK. Самый простой способ сделать это — настроить подпись, которая всегда будет использоваться для ваших отладочных/релизных сборок. Если у вас есть хранилище ключей Java, содержащее ключ подписи в вашем проекте, вы можете добавить следующее в файл градиента вашего приложения, чтобы подписать отладочную версию постоянной подписью:
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 автоматически подпишет для вас APK-файл для разработки. Чтобы определить, какую подпись MD5 предоставить WeChat, мне пригодилась эта статья: http://blog.sanuker.com/?p=691. Он содержит ссылку на китайское приложение, которое извлекает ваш хэш MD5 для предоставленного приложения: https://github.com/mike623/cordova-WeChat-meteor-sharing/blob/master/README.md
Предупреждение. Это случайная ссылка, которую я нашел в Интернете. Никаких обещаний, поскольку я не имею никакого отношения к программному обеспечению.
Если вы используете приложение, при его запуске укажите имя пакета в первом текстовом поле. При нажатии первой кнопки во втором текстовом поле отобразится MD5 вашего приложения. Вставьте это в WeChat.
Когда вы наконец получите токен от WeChat, это код, который вы должны обменять на токен доступа, используя идентификатор вашего приложения и секрет. Секрет можно найти на портале разработчиков WeChat. Для завершения обмена достаточно простого вызова API WeChat.
Вызов 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 . Прокрутите вниз до пункта «Получить токен доступа по коду».
Когда все выстроено, для генерации токена требуется очень мало кода. Однако если что-то не так, вы, скорее всего, никогда не увидите перехода к WeChat, сбоя при загрузке WeChat, если переход произойдет, или отсутствия ответа от WeChat после предоставления доступа к приложению.
Вы можете использовать любой код из этого примера, но делаете это на свой страх и риск! В WeChat очень сложно ориентироваться.
Примечание. Я не могу ответить ни на один вопрос о WeChat. Это было слишком долго и слишком болезненно, чтобы смотреть на это снова.
Удачи!