2010-12-07 15 views
7

彼がoauthによってログインした後にユーザーのメールを受け取ることは可能ですか?私のアプリケーションで彼の電子メールを共有したいのですか?または許可された情報は、URL http://api.twitter.com/1/users/show/test.xml(電子メールなし)によって返されるものですか?oauth twitter and email

+0

[OAuthを使用して自分のTwitter IDを確認した後でユーザーの電子メールIDを取得する方法はありますか?](http://stackoverflow.com/questions/3599621/is-there-a-way-to-get -an-users-email-id-after-verified-her-twitter-identity-us) – abyx

答えて

7

いいえ。Twitterのapiはセキュリティ上の理由から電子メールアドレスを共有しません。

更新:Twitterにこの機能が追加されました。 Look at @collerek's answer.

+1

本当にセキュリティについてですか?私の中の皮肉な人は、ユーザーの所有権を信じている可能性が高いです。ユーザーが同意する場合、ほぼすべての同様のサービスプロバイダが電子メールを共有します。 – UpTheCreek

+2

私はそれがどちらかといえます。最終的な結果は同じです。 –

6

興味がある人にとってはこれ以上は当てはまりません。

は、あなたのTwitterアプリのために特別な権限(電子メールアクセス)を要求するためにこの答えでガイドに従ってください: Can we get email ID from Twitter oauth API?

アプリでの使用とプライバシーポリシーのあなたの条件のためのリンクを提供する必要があります。次に、権限タブで、ユーザーから電子メールアドレスの要求をチェックすることができます。

Twitter APIに問い合わせると、 "?include_email = true"がurlに追加されます(したがって、完全なURLは "https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true"になります)。パラメータは、Twitterのマニュアルに記載されていますhttps://dev.twitter.com/rest/reference/get/account/verify_credentials

このURLの変更とのpython-社会的-AUTHライブラリにtwitter.pyバックエンドを更新することができ、それはあまりにも動作します。)

がtwitter.pyにライン35から始まってバックエンド:上記

def user_data(self, access_token, *args, **kwargs): 
"""Return user data provided""" 
return self.get_json(
'https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true', 
auth=self.oauth_auth(access_token) 
) 

と含まresponse.get( 'メール'、 '')数行:

def get_user_details(self, response): 
     """Return user details from Facebook account""" 
     fullname, first_name, last_name = self.get_user_names(
      response.get('name', ''), 
      response.get('first_name', ''), 
      response.get('last_name', '') 
     ) 
     return {'username': response.get('username', response.get('name')), 
       'email': response.get('email', ''), 
       'fullname': fullname, 
       'first_name': first_name, 
       'last_name': last_name} 
+0

レコードの場合、 'python-social-auth'の最新バージョンは既にそれを行います(現在のバージョンは0.2.21です)。リビジョン96fc4d1で変更されました。 – Alexandre

0

私はTwiterizzerからC#まで使っています。私のアプリケーションはすでにホワイトリストに載っているので、理論上はログに記録されたユーザーのメールを受け取ることができます。

OAuthTokenResponse response = OAuthUtility.GetRequestToken(key, secret, myurl); 
Uri authorizationUrl = OAuthUtility.BuildAuthorizationUri(response.Token); 
Response.Redirect(authorizationUrl.AbsoluteUri); 

をそして私がトークン受信したときに:

私はこれを行う

OAuthTokenResponse response = OAuthUtility.GetAccessToken(key, secret, receivedToken, receivedVerifier); 

この応答は、UserIdSreenNameを持っています。

メールのコードには何がありますか?

ありがとうございました

0

Twitterユーザーのメールアドレスを取得できます。 完全な手順をチェックアウトhere