写点什么

ShareSDK iOS 端微信如何获取 authcode 值

  • 2022 年 9 月 06 日
    上海
  • 本文字数:1420 字

    阅读完需:约 5 分钟

从 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 就会失效

用户头像

还未添加个人签名 2019.05.08 加入

还未添加个人简介

评论

发布
暂无评论
ShareSDK iOS端微信如何获取authcode值_微信_MobTech袤博科技_InfoQ写作社区