iOS使用友盟集成Facebook和twitter遇到的坑
1.Facebook账号问题:
1.1 公司用QQ邮箱注册Facebook账号,全都被禁用了。
1.2后来改为163邮箱,直接注册成功。这是别人注册好给我的。
1.3然后开通注册开发者账号时需要验证手机号,手机号通过了,但是这时候又要验证邮箱,应该是之前的注册没有走验证这条路。
1.4验证邮箱通过后,被认定为账号有问题,要求上传照片。好了,账号暂时无法使用。于是,我一怒之下换成了自己的fb账号
2.自己账号注册Facebook的开发者账户很简单,连接然后登录,然后添加新的应用,全中文,没啥说头。
然后会生成一个id,一个密钥,使用第三方登录时只要id就行。
然后可以创建一个iOS一个安卓的应用,iOS就一个Bundle ID,安卓主要是一个散列,生成方法自行百度。
3.集成到项目中。
公司对项目没有什么规定和限制,要集成好几个登录,所以我就直接使用友盟的SDK了。
包拖进来,依赖文件添加好,然后添加白名单,还有跳转的URL Scheme
这是官网提供的关于FB的白名单,我添加了之后还是有一些问题,具体的报错已经忘了,
fbapi
fb-messenger-api
fbauth2
fbshareextension
然后谷歌了一下,有添加了一个
fbauth
URL Scheme: fb+id 没啥东西
注:在Facebook未提交应用审核时,每一个账号所对应的应用,在测试的过程中,只能使用自己对应的Facebook账号进行登陆。否则在跳转Facebook后会出现一段error
twitter 的开发者账号比Facebook还要简单些,然后点击My apps
而不是Join
,然后创建应用。
给一个没有被绑定的应用名,好像连Bundle ID都不需要。然后就可以了。
在Permissions
中修改权限为Read,Write and Access direct messages
然后在Key and Access Tokens
查看应用的API Key
和API Secret
集成友盟时,有一个文件包,在本地文件里面,但是没有加入到项目中,要手动拖拽一下。
文件名:TwitterKitResources.bundle
twitter的三方登陆是不跳转的,应该是获取系统绑定的twitter账号,如果有多个账号就会弹出一个选择框,没有多账户就会直接登陆。
遇到的一个坑:
在手机端,或者设置中没有twitter账号时候,没有弹出twitter的登陆网页。
最后的一个报错是:
This client application's callback url has been locked
直接给解决方案:
在twitter 的开发者账号中,去掉勾选
Enable Callback Locking (It is recommended to enable callback locking to ensure apps cannot overwrite the callback url)