用戶發送了應用程序請求(使用本機fb.ui:apprequest)。當他的朋友打開通知(「XXX邀請您APP」)的URL看起來像這樣:FB Canvas應用程序:獲取請求ID
https://apps.facebook.com/app_name/?fb_source=notification&
request_ids=THE_REQUEST_ID&ref=notif&app_request_type=user_to_user&
notif_t=app_request
在這個頁面上,我的網頁是一個iframe內顯示。
以前,我可以簡單地叫:$_GET['request_ids']
我的頁面(iframe的內部)上得到REQUEST_ID (爲什麼,因爲我需要跟蹤誰發送了邀請?)。
但是,這不再有效。我已經嘗試了幾乎所有的東西。
根據facebook文檔,我使用的以前的解決方案是正確的。請參閱: https://developers.facebook.com/docs/games/requests#deleting(滾動一點向下,PHP的例子)
擁有Facebook取消了這一功能?那會很難過,我想/不希望!
的人都有過類似的問題,(所有建議的解決方案,它不再工作):
- Get request_ids in a canvas app
- Facebook Requests ID(s) retrieve and delete
- Retrieve User ID of Facebook App Invitor
是唯一的解決方案真正傳遞inviters user_id? (如Retrieve User ID of Facebook App Invitor中所建議的)。如果是這樣,那麼我可以在用戶點擊通知時檢索它嗎?
編輯:
我也曾嘗試使用:exit(print_r($facebook->getSignedRequest(), TRUE));
- 它輸出:
algorithm => HMAC-SHA256
issued_at => 1395696960
user =>
country => dk
locale => da_DK
age =>
min => 21
user_id => the_user_id (ONLY WHEN APP HAS ALREADY BEEN AUTHED IT SEEMS)
關閉,但沒有雪茄。
這是做這件事的正確方式,我不知道有任何改變的消息。然而,Facebook正在爲頁面推出一個新的「佈局」(沒有什麼太戲劇化的,但有一點小小的變化),我已經看到有人抱怨與頁面標籤應用程序類似的問題和'app_data '參數沒有被正確地傳遞......所以我的猜測是,他們可能在這個過程中搞砸了一些東西。我建議打開一個錯誤報告:https://developers.facebook.com/x/bugs/trending/ – CBroe
謝謝。我填寫了一個bugreport! – FooBar