我正在开发iOs应用程序,我已登录Facebook,LinkedIn,Google +和 Twitter 。 所有这些都让我使用API EXCEPT Twitter从我的个人资料中阅读我的电子邮件。
有没有办法获得我的电子邮件?
如果没有,Twitter上是否有“内部电子邮件”,如facebook(someone@facebook.com)中生成的电子邮件?
原因是我使用电子邮件作为数据库中用户的标识符(主键)。
非常感谢你。
答案 0 :(得分:3)
不,通过Twitter API无法提供电子邮件地址:https://dev.twitter.com/discussions/1737
也没有“内部电子邮件”可用,您必须使用推特用户名并向用户询问电子邮件地址。
答案 1 :(得分:1)
您必须使用 Twitter框架。 Twitter为此提供了一个漂亮的框架,您只需将其集成到您的应用程序中即可。
要获取用户电子邮件地址,您的应用应列入白名单。这是link。转到use this form。您可以发送邮件到sdk-feedback@twitter.com,其中包含有关您的应用程序的一些详细信息,如消费者密钥,应用程序的App Store链接,隐私政策链接,元数据,如何登录我们的应用程序的说明等等。他们将在2-3个工作日内回复。
以下是我与Twitter支持团队交谈后如何列入白名单的故事:
向sdk-feedback@twitter.com
发送邮件,其中包含有关您的应用程序的一些详细信息,例如消费者密钥,应用程序的App Store链接,隐私政策链接,元数据,如何登录我们的应用程序的说明。在邮件中提到您要在应用程序内访问用户电子邮件地址。
他们会审核您的应用并在2-3个工作日内回复您。
一旦他们说您的应用已列入白名单,请在Twitter开发者门户网站中更新您的应用设置。登录apps.twitter.com并:
使用Twitter框架:
获取用户电子邮件地址
-(void)requestUserEmail
{
if ([[Twitter sharedInstance] session]) {
TWTRShareEmailViewController *shareEmailViewController =
[[TWTRShareEmailViewController alloc]
initWithCompletion:^(NSString *email, NSError *error) {
NSLog(@"Email %@ | Error: %@", email, error);
}];
[self presentViewController:shareEmailViewController
animated:YES
completion:nil];
} else {
// Handle user not signed in (e.g. attempt to log in or show an alert)
}
}
获取用户个人资料
-(void)usersShow:(NSString *)userID
{
NSString *statusesShowEndpoint = @"https://api.twitter.com/1.1/users/show.json";
NSDictionary *params = @{@"user_id": userID};
NSError *clientError;
NSURLRequest *request = [[[Twitter sharedInstance] APIClient]
URLRequestWithMethod:@"GET"
URL:statusesShowEndpoint
parameters:params
error:&clientError];
if (request) {
[[[Twitter sharedInstance] APIClient]
sendTwitterRequest:request
completion:^(NSURLResponse *response,
NSData *data,
NSError *connectionError) {
if (data) {
// handle the response data e.g.
NSError *jsonError;
NSDictionary *json = [NSJSONSerialization
JSONObjectWithData:data
options:0
error:&jsonError];
NSLog(@"%@",[json description]);
}
else {
NSLog(@"Error code: %ld | Error description: %@", (long)[connectionError code], [connectionError localizedDescription]);
}
}];
}
else {
NSLog(@"Error: %@", clientError);
}
}
希望它有所帮助!!!