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


中关村科金
136 声望13 粉丝

北京中关村科金技术有限公司(简称“中关村科金”)是国内领先的对话式AI技术解决方案提供商,成立于2014年,注册资本14亿元,总部位于北京,在上海、重庆、深圳、杭州、成都等地设有分支机构,公司规模近千人,其...