需求:
在web端傳送遊戲應用通知,進行好友邀請和拉新,在fackbook 通知中顯示如: ( xxx-user在 xx 應用裡給你發了請求) 點選這個請求的效果是跳轉對應的App Store or 谷歌應用市場。如果已經安裝遊戲的,直接跳到遊戲應用中。
遇到的問題:
- 這是屬於遊戲通知,不是分享的範疇。
- FB邀請是https 和 域名形式才能進行獲取、回撥。
- 開發過程中,正常傳送了通知,安卓可以收到、ios 沒有收到
- 點選通知請求,沒有跳到對應的市場,而是在應用中心,顯示不支援該平臺
解決辦法:
- 第一點檢視文件找到對應的功能點,是遊戲請求
- 第二點https證照文件,本地弄一個https 證照。域名形式則通過搬定host 解決 本地https 證照(頁面目錄下執行):
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
http-server -S -C cert.pem -o
複製程式碼
- 第三點,最坑,是因為Bundle ID 不對導致沒有收到遊戲通知,還有iPhone store 的編號沒有填寫!得登陸facebook的應用後臺,設定安裝的包名資訊、類名資訊、還有選上單點登陸
- 第四點,安卓和ios 都選上單點登陸和深度連結就可以了。
相關程式碼:
<script>
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
// 初始化,傳入facebook 的應用ID
window.fbAsyncInit = () => {
FB.init({
appId : appID,
cookie : true,
xfbml : true,
version : 'v3.2'
});
FB.AppEvents.logPageView();
};
// 利用FB .ui apprequest 傳送通知
window.FB.ui({
appID,
method: 'apprequests',
message: '這是應用測試',
title: 'Invite friends to play',
}, function(response){
if(response && response.to.length>0){
console.log('Welcome! Fetching your information....1111 ');
}
console.log(response);
});
// 分享相關程式碼 ====
<div class="fb-share-button" data-href="https://www.katoto.cn/" data-layout="button" data-size="small">
<a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.baidu.com%2F&src=sdkpreparse" class="fb-xfbml-parse-ignore">分享</a>
</div>
複製程式碼
換起列表效果