Facebook有邀请与分享功能,支持在应用内将改应用推荐给Facebook好友,加以小奖励,该功能将会给应用带来可观的新用户。
之前我们游戏接入了分享和邀请,分享没有什么问题,只是在测试邀请的时候遇到一些坑,这里记录下来。
接入流程
- 按照 https://developers.facebook.com/docs/app-invites 里配置 Android/IOS
- Facebook App后台配置 Android/IOS
- 配置App Link
- Supporting incoming links
下面所有Facebook 后台链接中都是使用我自己的AppId1589998251253231,注意要换成你们自己的。
Facebook App后台添加平台 Android/IOS
https://developers.facebook.com/apps/1589998251253231/settings/
注意点:
IOS平台必须需要配置iPhone/iPad Store ID才能收到邀请。
测试时可以使用任意未被Facebook注册的Apple Store ID,等正式上线了再换成正式的ID。
We were unable to retrieve your iPad Store ID from the iTunes App Store. Please double-check your ID and try again later.
从 App Store 调用 iPhone Store ID 时出错,请检查编号并重试。
上面的错误表示使用的Apple Store ID已经在Facebook注册过了。
这里要吐槽下Facebook关于App Invite的问题,竟然没有任何地方写明必须要设置iPhone/iPad Store ID用户才能收到邀请,然而被邀请者去下载ID跟这里却没有关系。
配置App Link
https://developers.facebook.com/quickstarts/1589998251253231/?platform=app-links-host
注意该工具生成App Link后,可以在以后修改该link的内容,之前不知道可以修改,每次修改后更换链接,麻烦了好一阵。
从下面的链接中找到相应的App Link ID,然后写入Modify an existing App Link URL?选项中,点击 Edit 按钮就可以修改已存在的链接了。
已生成的App Link从这里查看:https://developers.facebook.com/tools/applinkshost/
重要的配置:
IOS Data:
URL with custom scheme
(可选) 推荐设置,用于通过邀请链接直接跳转到应用,强烈建议设置,例如 comlitefeelmyapp://
App Name
(可选) 设置了也无效,会使用APP后台设置的应用名
App Store ID
(可选) 推荐设置,如果被邀请者设备中没有未安装应用,将到AppStore下载该ID的应用。
该ID可与APP后台设置的不同。
如果有应用接受上面的custom scheme,则表示已安装应用。
Android Data:
URL
(可选) 强烈推荐设置,用于通过邀请链接直接跳转到应用,例如 com.litefeel.myapp://
App Name
(可选) 设置了也无效,会使用APP后台的应用名(在语言设置里)
Package Name
(必写) 用于从Google Play下载应用,类似App Store ID.
Supporting incoming links
从浏览器跳转到应用,用于被邀请者在邀请信息界面直接打开应用。
如果仅仅是被邀请者打开应用,那么直需参照下面的配置就好,不需要写任何代码。
如果需要对链接进行相应的处理参见App Link的IOS/Android实现部分:https://developers.facebook.com/docs/applinks
IOS配置:
在Info.plist中添加下面的配置。
注意将comlitefeelmyapp
替换成App Link中的URL
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>comlitefeelmyapp</string> </array> </dict> </array>
Andorid配置:
在AndroidManifast.xml文件的主Activity中添加下面的配置。
注意将com.litefeel.myapp
替换成App Link 中的URL
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs "com.litefeel.myapp://" --> <data android:scheme="com.litefeel.myapp" /> </intent-filter>
最后
测试的时候如果Facebook中有记录该用户已经登录过该应用,那么将不再收到邀请通知,可以使用Test Users来测试(不是Tester)。
Test User是虚拟用户,只能跟Test User交互,不能跟真实用户交互。添加2个Test User,互加好友后就能测试邀请了。
界面截图
Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.