gpt4 book ai didi

ios - iOS:如何从Twitter API 1.1获取推文

转载 作者:行者123 更新时间:2023-12-01 19:09:41 29 4
gpt4 key购买 nike

Twitter已弃用其API 1.0,并实施了新的API 1.1
根据新的API,我们需要先进行身份验证,然后才能获取 public 时间轴。

我在这里阅读了新的API文档:https://dev.twitter.com/docs/api/1.1
但我不清楚如何在iOS中实现它。

谁能告诉我使用API​​ 1.1获取公开时间轴表单Twitter的最佳方法

提前致谢。

最佳答案

首先,您需要Authenticate您的请求(获得许可)。

第二,请参阅以下步骤:

1.下载FHSTwitterEngine Twitter库。

2.将文件夹FHSTwitterEngine“添加到您的项目和#import "FHSTwitterEngine.h".
3.将SystemConfiguration.framework添加到您的项目中。

用法:1.在[ViewDidLoad]中添加以下代码。

UIButton *logIn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
logIn.frame = CGRectMake(100, 100, 100, 100);
[logIn setTitle:@"Login" forState:UIControlStateNormal];
[logIn addTarget:self action:@selector(showLoginWindow:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:logIn];

[[FHSTwitterEngine sharedEngine]permanentlySetConsumerKey:@"<consumer_key>" andSecret:@"<consumer_secret>"];
[[FHSTwitterEngine sharedEngine]setDelegate:self];
and don't forget to import the delegate FHSTwitterEngineAccessTokenDelegate.

you need to get the permission for your request, with the following method which will present Login window:
- (void)showLoginWindow:(id)sender {
[[FHSTwitterEngine sharedEngine]showOAuthLoginControllerFromViewController:self withCompletion:^(BOOL success) {
NSLog(success?@"L0L success":@"O noes!!! Loggen faylur!!!");
}];
}

当出现“登录”窗口时,输入您的 Twitter用户名和密码以验证您的请求。

将以下方法添加到您的代码中:
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[FHSTwitterEngine sharedEngine]loadAccessToken];
NSString *username = [[FHSTwitterEngine sharedEngine]loggedInUsername];// self.engine.loggedInUsername;
if (username.length > 0) {
lbl.text = [NSString stringWithFormat:@"Logged in as %@",username];
[self listResults];


} else {
lbl.text = @"You are not logged in.";
}

}
- (void)storeAccessToken:(NSString *)accessToken {
[[NSUserDefaults standardUserDefaults]setObject:accessToken forKey:@"SavedAccessHTTPBody"];
}

- (NSString *)loadAccessToken {
return [[NSUserDefaults standardUserDefaults]objectForKey:@"SavedAccessHTTPBody"];
}
4.Now you are ready to get your request, with the following method(in this method I created a `Twitter` search for some `Hashtag`, to get the screen_name for example):

- (void)listResults {

dispatch_async(GCDBackgroundThread, ^{
@autoreleasepool {
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

// the following line contains a FHSTwitterEngine method wich do the search.

dict = [[FHSTwitterEngine sharedEngine]searchTweetsWithQuery:@"#iOS" count:100 resultType:FHSTwitterEngineResultTypeRecent unil:nil sinceID:nil maxID:nil];
// NSLog(@"%@",dict);
NSArray *results = [dict objectForKey:@"statuses"];

// NSLog(@"array text = %@",results);
for (NSDictionary *item in results) {
NSLog(@"text == %@",[item objectForKey:@"text"]);
NSLog(@"name == %@",[[item objectForKey:@"user"]objectForKey:@"name"]);
NSLog(@"screen name == %@",[[item objectForKey:@"user"]objectForKey:@"screen_name"]);
NSLog(@"pic == %@",[[item objectForKey:@"user"]objectForKey:@"profile_image_url_https"]);
}

dispatch_sync(GCDMainThread, ^{
@autoreleasepool {
UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"Complete!" message:@"Your list of followers has been fetched" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[av show];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
});
}
});
}

就这样。我只是从 screen_name获得 search Query,您可以使用以下方法为用户获取时间轴:
// statuses/user_timeline
- (id)getTimelineForUser:(NSString *)user isID:(BOOL)isID count:(int)count;
- (id)getTimelineForUser:(NSString *)user isID:(BOOL)isID count:(int)count sinceID:(NSString *)sinceID maxID:(NSString *)maxID;

而不是上面的搜索方法。

注意:请参阅 FHSTwitterEngine.h以了解您需要使用哪种方法。
注意:要获取 <consumer_key><consumer_secret>,您需要
访问此链接以 register将您的应用程序 Twitter

关于ios - iOS:如何从Twitter API 1.1获取推文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17207317/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com