下面是在android中直接使用微信SDK生成token的demo。这可能是一项非常困难的任务,因为网上的文档和代码示例非常少。微信的大部分文档都是中文的,如果遇到任何问题,调试会变得非常困难。如果你的配置不好,微信也不会回应,留给谷歌的时间很少。
这是一个仅用于登录的简化演示。以下是大多数(所有)微信功能的更全面的演示,确实帮助我弄清楚了登录: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 。向下滚动到“通过代码获取访问令牌”。
一旦一切准备就绪,生成令牌所需的代码就很少了。但是,如果出现任何问题,您可能永远不会看到任何到微信的转换,如果发生转换,则无法加载微信,或者在您授予应用程序访问权限后微信没有任何响应。
您可以自由使用此示例中的任何代码,但需要您自担风险!微信很难导航。
注:我无法回答任何有关微信的问题。时间太久了,伤痕累累,无法再看一遍。
祝你好运!