Closed acylum closed 9 years ago
@acylum It's based on OAuth 2, so you can get the access token and then request for user id and user name. A similar example would be 网页授权获取用户基本信息.
// Not tested.
Wechat.auth(scope, function (response) {
// $ = jQuery
var appId = "YOUR_APP_ID";
var appSecret = "YOUR_APP_SECRET";
$.get('https://api.weixin.qq.com/sns/oauth2/access_token?appid=' + appId + '&secret=' + appSecret + '&code=' + response.code + '&grant_type=authorization_code', function (accessTokenResponse) {
// you should save access token response somewhere, e.g. cookies, local storage, etc.
var accessToken = accessTokenResponse.access_token;
var openId = accessTokenResponse.openid;
// get user information
$.get("https://api.weixin.qq.com/sns/userinfo?access_token=' + accessToken + '&openid=' + openId + '&lang=zh_CN", function (userInfoResponse) {
console.log(userInfoResponse);
});
});
});
Great! Thanks! My next question - let's say I use the webAPI to refresh the access token (i.e. https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN).
How would I make your cordova-wechat plugin use this refreshed access-token (to do posts, etc,..)?
@acylum Refresh token will be available in the access token response. See 网页授权获取用户基本信息.
[11:27:43] tslint: src/app/app.component.ts, line: 169
'accessToken' is declared but never used.
L168: // you should save access token response somewhere, e.g. cookies, local storage, etc.
L169: var accessToken = accessTokenResponse.access_token;
L170: var openId = accessTokenResponse.openid;
[11:27:43] tslint: src/app/app.component.ts, line: 170
'openId' is declared but never used.
L169: var accessToken = accessTokenResponse.access_token;
L170: var openId = accessTokenResponse.openid;
L171: // get user information
When I run it in web browser with ionic serve -l
, this warning coming out. And I am using ionic3
ionic info
cli packages: (/usr/local/lib/node_modules)
@ionic/cli-utils : 1.16.0
ionic (Ionic CLI) : 3.16.0
global packages:
cordova (Cordova CLI) : 7.0.1
local packages:
@ionic/app-scripts : 2.1.3
Cordova Platforms : android 6.3.0 ios 4.4.0
Ionic Framework : ionic-angular 3.6.0
System:
ios-deploy : 1.9.2
Node : v6.11.3
npm : 3.10.10
OS : macOS Sierra
Xcode : Xcode 8.3.3 Build version 8E3004b
Environment Variables:
ANDROID_HOME : not set
Misc:
backend : pro
How would you get the user's wechatID and name as part of the response after using Wechat.auth()
For example, after using Wechat.auth(scope, function (response) {
console.log(response.userid,response.username); }