2014-03-25 104 views
40

如何獲取接受我的Twitter應用程序的用戶的電子郵件ID?我們可以從Twitter oauth API獲取電子郵件ID嗎?

我經歷了很多論壇。但他們提到,這是不可能的。這些帖子也比一年前更長。我是否可以通過使用PHP的twitter API獲取用戶電子郵件ID?

我使用以下網址獲取Twitter的用戶詳細信息:

https://api.twitter.com/1.1/account/verify_credentials.json

+0

在這裏,我會得到一個解決方案還通過供應商提到的問題。 (即)如何處理這種情況.. –

+0

我無法在Twitter文檔中找到它!只能從Twitter社區論壇中找到答案:https://twittercommunity.com/t/twitter-oauth-after-connect-get-primary-email-address/1563/11 – jonprasetyo

+2

@PaulDessert這位特定供應商員工的成員聲明在公共[論壇]上(https://twittercommunity.com/t/how-to-get-email-from-twitter-user-using-oauthtokens/558/175)他們已經實現了功能而沒有記錄它。當然,有人(比如功能開發人員)知道如何使用該功能,儘管它沒有出現在API文檔中。這些人可能能夠提供像Vinoth幫助他在別處找不到的人。 – jeteon

回答

86

這是現在可以通過填寫表格以申請elevated permissions

  1. 轉到https://support.twitter.com/forms/platform
  2. 選擇「我需要訪問特殊權限」
  3. 輸入應用程序名稱和ID。這些可以通過https://apps.twitter.com/獲得 - 應用程序ID是您單擊應用程序後瀏覽器地址欄中的數字部分。
  4. 權限請求:「電子郵件地址」
  5. 提交&等待響應
  6. 您的請求已得到批准之後,添加允許設置你的Twitter應用程序的「權限」節中添加。轉到「其他權限」,然後勾選「請求用戶的電子郵件地址」複選框。

請注意,用戶的電子郵件地址必須經過驗證,否則Twitter拒絕提供。 (見include_email參數描述elevated permissions文檔頁。)

+1

我從來不知道這個現在存在,非常感謝! –

+1

他們是否真的很容易授予此權限?或者它只是保留已經成功的應用程序? – anges244

+1

@ anges244看起來他們確實很容易,至少對於從未有過投訴的開發者來說。我的應用程序甚至不能在線訪問,所以他們不能查看它。 – tremby

4

這是不可能的從Twitter獲取用戶的電子郵件地址。你可以看到它here。您可以在回電頁面上打開表格頁面,並在該頁面上獲取用戶的電子郵件地址。例如,您可以參考here

+0

Huseyin BABAL:謝謝你的回覆。我可以知道dev.twitter.com的鏈接,我可以向你保證。所以我可以把它展示給客戶,並開始探索。 –

+0

你可以參考這裏https://dev.twitter.com/docs/faq#6718 –

+0

謝謝男人。我會照你的話去做。 –

6

現在可以從Twitter中檢索用戶的電子郵件地址(當然,如果用戶允許的話)。

您需要申請將您的應用程序列入白名單才能接收xAuth。

在這裏獲得更多的信息: https://dev.twitter.com/rest/reference/get/account/verify_credentials

+1

您應該提到「xAuth不適用於基於Web的應用程序」。這就是爲什麼你的回答不適用於操作系統的問題。 – TNT

1

下面是我在ASP.Net使用linqtoTwitter庫 http://www.bigbrainintelligence.com/Post/get-users-email-address-from-twitter-oauth-ap

// call verify credentials api 
var twitterCtx = new TwitterContext(authTwitter); 
var verifyResponse = 
     await 
      (from acct in twitterCtx.Account 
      where (acct.Type == AccountType.VerifyCredentials) && (acct.IncludeEmail == true) 
      select acct) 
      .SingleOrDefaultAsync(); 

if (verifyResponse != null && verifyResponse.User != null) 
{ 
    User twitterUser = verifyResponse.User; 
    //assign email to existing authentication object 
    loginInfo.Email = twitterUser.Email; 

} 
+0

您使用的憑證存儲是什麼?我嘗試了他們的代碼示例,但只返回「我的」用戶帳戶信息 - 不是剛登錄的用戶的用戶信息。 –

26

現在,您可以獲取從Twitter API的用戶電子郵件地址來實現這而且要容易得多。只需按照以下步驟操作

  1. 轉到Twitter Apps

  2. 點擊 '創建新的應用程序'

  3. 填充所有所需的憑證,然後單擊 '創建你的Twitter應用程序'

  4. 現在點擊 '權限'選項卡 - >選中'請求用戶的電子郵件地址'字段並點擊'更新設置'。 (查看圖片)

  5. 現在在您的PHP代碼中,設置所有應用程序的詳細信息並添加此代碼!

    $params = array('include_email' => 'true', 'include_entities' => 'false', 'skip_status' => 'true');

    $data = $connection->get('account/verify_credentials', $params); // get the data

    // getting twitter user profile details $twt_id = $data->id; //twitter user id $twt_email = $data->email; //twitter user email

全部完成。 希望它能幫助你,祝你好運。 ;)

enter image description here

+2

找了差不多2個小時後,這就是解決方案。這應該是大量的upvoted。這是我的打字這一月的2017年1月7日。在互聯網上找到的任何地方都沒有其他方法可以使用。 –

+4

做完之後。還沒有得到電子郵件地址。 – Dhirender

+1

同樣,沒有收到電子郵件.. – muaaz

0

是的,你可以得到電子郵件address.This現在通過填寫一些權限可能。

1.Go此鏈接:https://apps.twitter.com/

2.After進入許可標籤您創建的應用程序內

3.Select添加允許複選框,在您的應用程序。

4.成功更新設置後,您可以從Twitter獲取電子郵件地址。

如果在某些情況下您無法獲取電子郵件地址,請檢查您的Oauth Api請求網址。

您要求的網址應該是這樣的類型:https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true

相關問題