問題是,當用戶點擊登錄FB按鈕在我的網站,Facebook的API拋出他與要求訪問權限(這是通常的流量)的窗口。但是當用戶選擇代理郵件地址(匿名)時,我想強制用戶只使用他的真實電子郵件ID登錄。與Facebook代理電子郵件防止註冊等
我應該怎麼來處理呢?
我可以檢測到用戶使用代理電子郵件和阻止他註冊,但當時我無法從他的授權的應用程序列表中刪除我的應用程序 - 這意味着我不能讓他到最初的對話框選擇哪些電子郵件他會提供。
問題是,當用戶點擊登錄FB按鈕在我的網站,Facebook的API拋出他與要求訪問權限(這是通常的流量)的窗口。但是當用戶選擇代理郵件地址(匿名)時,我想強制用戶只使用他的真實電子郵件ID登錄。與Facebook代理電子郵件防止註冊等
我應該怎麼來處理呢?
我可以檢測到用戶使用代理電子郵件和阻止他註冊,但當時我無法從他的授權的應用程序列表中刪除我的應用程序 - 這意味着我不能讓他到最初的對話框選擇哪些電子郵件他會提供。
你不能強迫用戶經過授權再次對話框,因爲就如Facebook而言,用戶已經安裝了應用程序,並沒有別的需要發生。您可以在這裏做的最好的事情是編寫自己的表單,通知用戶Facebook代理電子郵件地址不可接受,並且您需要一個真實的電子郵件地址。不幸的是,這不會強制用戶給你他們的Facebook帳戶的電子郵件地址,甚至是一個真正的電子郵件地址。儘管這是我們通過Facebook獲得的最好結果,但這只是我們必須面對的問題。
UPDATE 11年5月10日
我瀏覽Facebook的文檔四周,發現存在的老傳統REST API這實際上允許你刪除擴展權限爲您的應用程序從一個方法一個用戶。我認爲你可以使用這個確切的API調用來管理從你的Facebook用戶獲取非代理地址,同時仍然使用本機安裝對話框。
我測試了這個使用FB JS SDK和它的工作!您需要使用的方法是auth.revokeExtendedPermission
方法。以下是通過JS SDK和PHP SDK調用該方法的兩個示例。
的Javascript:
<script>
FB.api({
method: 'auth.revokeExtendedPermission',
perm: 'read_stream'
}, function(response)
{
console.log(response)
});
</script>
PHP:
<?php
$facebook->api(array(
'method' => 'auth.revokeExtendedPermission',
'perm' => 'email',
'uid' => $uid
));
因爲這些使用傳統REST API他們不是爲 「支持」 作爲新的圖形API。我沒有看到任何有關將此功能遷移到Graph API的信息。希望他們會。通過圖形API的應用程序(如下)與PHP SDK的
調用撤銷然後通過這個非代理要求你的對話框重定向用戶返回解釋。
private function revokeAccess() {
$access_token = $this->facebook->getAccessToken();
$result = $this->facebook->api(array(
'method' => 'auth.revokeAuthorization',
'uid' => $this->{facebook id here},
'access_token' => $access_token
));
return $result;
}
此代碼是php。
這完全刪除了該應用程序。
成功返回1; 0失敗。
$ this-> facebook == facebook對象來自facebook php sdk。
請使用相關編程語言的標籤更新您的問題。以前,這個問題被標記爲asp.net,php和ruby-on-rails。 – 2011-05-02 06:26:22
我用一些新發現的信息更新了我的原始答案,我認爲您可能會利用這些信息並幫助您完成您想要的任務。 – 2011-05-10 13:27:06
代理郵件系統有一個很好的理由 - 防止垃圾郵件。除了能夠發送/出售用戶的真實電子郵件地址外,您還有什麼理由強迫用戶提供另一個電子郵件地址? – Neil 2013-06-01 14:47:48