iOS做新浪微博sso授权登录遇到的一些坑
新浪微博sso授权第三方登录,这里没有借助第三方框架,如shareSKD和友盟等,直接参考新浪官方SDK和文档。
过程中遇到几个坑,找了很久,好歹最后解决了,记录如下
问题1:
_NSInlineData base64EncodedString - unrecognized selector sent to instance 报错
这个坑编译是看不出来的,可以通过,运行时,直接闪退了,蹦~
解答:
这里我之前也试过第三方框架做新浪授权登录,也会遇到此问题,所以这个还是新浪自己SDK的坑,与第三方框架无关。
最后解决:在build settings ->other linker flags ->添加-all_load
吐槽下,官方文档上,让家-objc,没卵用啊。。。
这里要注意下,如果还不行,最好严格按照官方文档把相应framework加全了,具体参考《微博iOS平台SDK文档V3.1.4》,https://github.com/sinaweibosdk/weibo_ios_sdk。
问题2:
好了,这个坑纠结很久,终于可以运行了,打开都正常,点击新浪登录,理论上直接弹出提示:应用想打开微博,下面可以选取取消、确定
但实际上是跳刀了网页登录,并没有sso打开微博APP,并且打印一大堆日志,错误如下:
-canOpenURL: failed for URL: "sinaweibo" - error:"This app is not allowed to query for scheme xx
-canOpenURL: failed for URL: "weibosdk" - error:"This app is not allowed to query for scheme xx
总共好几行,解决办法是:在info.plist里添加一个属性:LSApplicationQueriesSchemes,并设置内容
添加完,就可以正常授权了。
授权后回得到uid和accessToken,再自己去新浪调取用户接口就可以得到用户信息了,昵称、城市、头像什么的。。。
结束。