关于微信:ShareSDK-iOS端微信如何获取authcode值

4次阅读

共计 2016 个字符,预计需要花费 6 分钟才能阅读完成。

从 4.2.0 版本咱们减少了获取 code 的接口
如果用户只是须要失去 code 值,而后本人到服务端获取到用户信息作解决,不想通过咱们接口获取用户信息的话,能够这样调用,先初始化

/**
 ShareSDK 平台注册办法
 @param importHandler 用于设置各平台注册信息,也可在 mob 治理后盾进行注册
 */
+ (void)registPlatforms:(void(^)(SSDKRegister *platformsRegister))importHandler;
/**
 设置微信 (微信好友,微信朋友圈、微信珍藏) 利用信息
 @param appId 利用标识
 @param appSecret 利用密钥
 @param universalLink 利用深度连贯
 */
- (void)setupWeChatWithAppId:(NSString *)appId
                                 appSecret:(NSString *)appSecret
                             universalLink:(NSString *)universalLink;
​

示例代码

#import <ShareSDK/ShareSDK.h>
[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {
                     // 微信初始化里的 appsecret 要为 nil
                     [platformsRegister setupWeChatWithAppId:@"wx617c77c82218ea2c" appSecret:nil universalLink:@"https://70imc.share2dlink.com/"];

}];

而后调用这些办法


/**
 在用户不心愿裸露微信 appSecret 状况下,能够设置此 block,传入 token 持续申请用户信息
 @param operation 申请 authToken 业务
 */
+ (void)setRequestAuthTokenOperation:(SSDKRequestTokenOperation)operation;
​

示例代码

#import <ShareSDK/ShareSDK.h>
#import <WechatConnector/WechatConnector.h>
[WeChatConnector setRequestAuthTokenOperation:^(NSString *authCode, void (^getUserinfo)(NSString *uid, NSString *token)) {NSLog(@"%@",authCode);

}];

// 先执行 auth 办法,咱们外部会判断,如果 appsecret 为 nil,就会判断执行 setRequestAuthTokenOperation

/**
 受权
 @param platformType 平台类型
 @param settings 受权设置, 承受 scopes 属性设置,如新浪微博关注官网微博:@{@"scopes" : @[@"follow_app_official_microblog"]},相似“follow_app_official_microblog”这些字段是各个社交平台提供的。QQ 平台如设置二维码受权, 增加字段为 QQAuthType:@{@"QQAuthType":@1}, 0 为网页账号密码登录受权
 @param stateChangedHandler 受权状态变更回调解决
 @return 会话 id
 */
+ (SSDKSession *)authorize:(SSDKPlatformType)platformType
                                settings:(NSDictionary *)settings
                 onStateChanged:(SSDKAuthorizeStateChangedHandler)stateChangedHandler;
​

示例代码

#import <ShareSDK/ShareSDK.h>
[ShareSDK authorize:SSDKPlatformTypeWechat 
                     settings:nil 
            onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) {if (state == SSDKResponseStateSuccess)
        {NSLog(@"%@",[user.credential rawData]);
              NSLog(@"%@",user.rawData);
        }
        else
        {NSLog(@"%@",error);
        }
}];

如果须要获取到用户信息,那么开发者须要通过获取到的 code,本人去调用微信的 API 获取 uid,token,拿到这 2 个值后,而后通过参数 getUserinfo 提供给咱们平台,执行 getUserinfo(uid,token);,拿到用户信息后 authorize 办法里的 block 就执行了回调。

留神:authCode 通过 API 获取 token 后,这个 authCode 就会生效

正文完
 0