NSP*_*tik 3 twitter objective-c ios twitter-oauth acaccountstore
我的目标是根据他/她的Twitter帐户获取用户的详细信息.首先,让我解释一下我想做什么.
在我的情况下,将向用户显示使用Twitter帐户注册的选项.因此,基于用户的Twitter帐户,我希望能够获取用户详细信息(例如电子邮件ID,姓名,个人资料图片,出生日期,性别等)并将这些详细信息保存在数据库中.现在,很多人可能会建议我使用ACAccount和ACAccountStore一个提供访问,操作和存储帐户的界面的类.但在我的情况下,即使用户尚未在iOS设置应用中为Twitter配置帐户,我也想要注册用户.我希望用户导航到Twitter的登录屏幕(在Safari或App本身,或使用任何其他替代方案).
我也提到Twitter的API有列表的文档在这里.但我很困惑应该如何向用户提供登录屏幕以登录Twitter帐户以及如何获取个人资料信息.我应该使用UIWebView,还是将用户重定向到Safari或采用其他方式?
最后,在与sdk-feedback@twitter.com我进行了长时间的对话之后,我将我的应用列入白名单.这是故事:
发送邮件到sdk-feedback@twitter.com我们的应用程序的一些详细信息,如消费者密钥,应用程序的App Store链接,隐私政策链接,元数据,如何登录我们的应用程序的说明.在邮件中提到您要访问应用程序内的用户电子邮件地址.
他们将审核您的应用程序并在2-3个工作日内回复您.
一旦他们说您的应用程序被列入白名单,请在Twitter开发人员门户中更新您的应用程序设置.登录apps.twitter.com并:
同意Vizllx的声明:"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)
}
}
Run Code Online (Sandbox Code Playgroud)
获取用户资料
-(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);
}
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你 !!!
| 归档时间: |
|
| 查看次数: |
11312 次 |
| 最近记录: |