如何使用iOS SDK进行授权和微信login?

如何使用iOS SDK进行授权和微信login? 有关堆栈溢出或谷歌似乎没有太多的信息,大多数文件都是中文的。

select在这里回答我自己的问题,因为似乎缺乏有关堆栈溢出和谷歌的信息。 我希望别人也觉得有用。

1.)关于如何设置iOS SDK的Suragch的优秀答案: 如何将微信API添加到Swift项目? 。 确保AppDelegate的设置与所描述的func onReq(req: BaseReq!)func onResp(resp: BaseResp!)方法相同。

2.)要获得login和授权,您必须下载并使用SDK的中文版本。 奇怪的是,一些login所需的function从英文版本中删除。 中文SDK: https : //open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t= resource/ res_list&verify=1&id=open1419319164&lang=zh_CN

3.)首先我们要授权我们想用WeChat的应用程序。 这可以这样做:

 let req = SendAuthReq() req.scope = "snsapi_userinfo" //Important that this is the same req.state = "co.company.yourapp_wx_login" //This can be any random value WXApi.sendReq(req) 

这应该返回一个代码func onResp(resp: BaseResp!)我实现了这样的方法 – 触发通知:

 func onResp(resp: BaseResp!) { if let authResp = resp as? SendAuthResp { if authResp.code != nil { let dict = ["response": authResp.code] NSNotificationCenter.defaultCenter().postNotificationName("WeChatAuthCodeResp", object: nil, userInfo: dict) } else { let dict = ["response": "Fail"] NSNotificationCenter.defaultCenter().postNotificationName("WeChatAuthCodeResp", object: nil, userInfo: dict) } } else { let dict = ["response": "Fail"] NSNotificationCenter.defaultCenter().postNotificationName("WeChatAuthCodeResp", object: nil, userInfo: dict) } } 

4.)通过代码,我们现在可以尝试获取openID和accessToken。 要做到这一点,我们需要使用appIDappSecretbuild立一个链接,并做一个HTTP GET请求。 appIDappSecret是您使用微信注册应用程序时获得的详细信息。 像这样的例子:

 private let appID = "somecode2132113" private let appSecret = "someappsecret213123" private let accessTokenPrefix = "https://api.weixin.qq.com/sns/oauth2/access_token?" private func buildAccessTokenLink(withCode code: String) -> String { return accessTokenPrefix + "appid=" + appID + "&secret=" + appSecret + "&code=" + code + "&grant_type=authorization_code" } 

通过这个链接,我们可以执行HTTP GET请求并获取JSON中的openIDaccessToken 。 (在邮递员尝试它)。 我不会为此发布代码,但我正在使用Alamofire。

5.)最后,我们可以更进一步,尝试获取微信用户的昵称和个人资料照片。 非常类似于我们之前使用我们获得的openIDaccessToken创build新链接。 像这样:

 private let userInfoPrefix = "https://api.weixin.qq.com/sns/userinfo?" private func buildUserInfoLink(withOpenID openID: String, accessToken: String) -> String { return userInfoPrefix + "access_token=" + accessToken + "&openid=" + openID } 

再一次,执行HTTP GET请求,JSON将返回昵称和个人资料照片链接!

再加上:详细的指导在这里: http : //www.kekearif.com/how-to-implement-ios-wechat-login/