- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试将 Twitter 时间轴添加到我的 iOS 应用程序中。推特在这里给出了官方的示例代码: https://dev.twitter.com/docs/ios/making-api-requests-slrequest
我的问题是:在第 70 行
if (timelineData) {
NSLog(@"Timeline Response: %@\n", timelineData);
}
时间线数据成功打印到控制台。我尝试添加
self.dict = timelineDate;
和
return self.dict;
在函数的末尾,但实际上它返回一个空字典。我注意到这个过程是在另一个线程中完成的,所以我尝试了
dispatch_async(dispatch_get_main_queue(), ^{
self.dict = timelineDate;
};
但是还是不行。这可能很容易解决,但我真的无法从 Apple 或 Twitter 找到任何资源。谁能帮忙?
最佳答案
我使用此功能在我的应用程序中加载推文(与 twitter api v1.1 兼容,但需要在设备中同步 twitter 帐户。)我正在使用 TWRequest 执行此操作,您也可以使用 SLRequest 执行相同的操作。
//include twitter.framework
#import <Twitter/Twitter.h>
+ (void)getTweetsFortwitterID:(NSString *)twitterID
{
if(twitterID.length >0)
{
NSString * finalURL = [NSString stringWithFormat:@"https://api.twitter.com/1.1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=%@&count=10", twitterID];
TWRequest *postRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:finalURL] parameters:nil requestMethod:TWRequestMethodGET];
ACAccountStore *accountStore = [[ACAccountStore alloc] init] ;
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
// Request access from the user to use their Twitter accounts.
[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error)
{
if(granted)
{
NSArray *twitterAccounts = [accountStore accountsWithAccountType:accountType];
if([twitterAccounts count] >0
)
{
ACAccount *twitterAccount = [twitterAccounts objectAtIndex:0];
[postRequest setAccount:twitterAccount];
NSLog(@"request.account:%@",postRequest.account);
// Perform the request created above and create a handler block to handle the response.
NSMutableArray *tweetsArray=[[NSMutableArray alloc]init];
[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
// Parse the responseData, which we asked to be in JSON format for this request, into an NSDictionary using NSJSONSerialization.
NSArray *publicTimeline = nil;
NSError *jsonParsingError = nil;
if (responseData)
{
publicTimeline = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&jsonParsingError];
NSLog(@"publicTimeline : %@", publicTimeline);
}
if ([publicTimeline isKindOfClass:[NSArray class]])
{
for (int i =0; i<[publicTimeline count]; i++)
{
NSMutableDictionary *twitterDict=[[NSMutableDictionary alloc]init];
if ([[publicTimeline objectAtIndex:i] objectForKey:@"text"])
{
NSLog(@"ID: %@", [[publicTimeline objectAtIndex:i] objectForKey:@"text"]);
[twitterDict setObject:[[publicTimeline objectAtIndex:i] objectForKey:@"text"] forKey:@"text"];
}
if ([[publicTimeline objectAtIndex:i] objectForKey:@"created_at"])
{
NSLog(@"ID: %@", [[publicTimeline objectAtIndex:i] objectForKey:@"created_at"]);
[twitterDict setObject:[[publicTimeline objectAtIndex:i] objectForKey:@"created_at"]
forKey:@"created_at"];
}
if ([[publicTimeline objectAtIndex:i] objectForKey:@"user"])
{
NSLog(@"ID: %@", [[publicTimeline objectAtIndex:i] objectForKey:@"created_at"]);
[twitterDict setObject:[[[publicTimeline objectAtIndex:i] objectForKey:@"user"]objectForKey:@"profile_image_url"]
forKey:@"profile_image_url"];
}
[tweetsArray addObject:twitterDict];
NSLog(@"tweets:%@", tweetsArray);
}
}
if([tweetsArray count]>0)
[[NSNotificationCenter defaultCenter] postNotificationName:@"tweetsLoaded" object:tweetsArray];
}];
}
}
}];
}
}
希望有用。
关于ios - 如何使用 SLRequest 获取 twitter 时间线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16104704/
我正在使用 SLRequest 发布到用户的 Twitter 流,下面的代码可以在模拟器中发布,但不能在实际设备上发布。 //create the SLRequest and post to the
我一直在尝试利用内置的 iOS 帐户和 Twitter 框架检索 Twitter 用户数据。 我已成功访问手机上的用户帐户。但是,当向 twitter 发出 SLRequest 时,我收到未经身份验证
你好,对于我正在处理的项目,我必须在后台执行 n-SLRequest,所以我要做的是将这些请求添加到 NSOperationQueue,如下面的代码所示 - (void)performBatchReq
使用 SLRequest 与 Facebook 集成时是否强制使用 app Id 实际上我没有 App id,那么是否可以使用 SLRequest 集成 Facebook使用 app id 因为我没有
我正在使用 iOS 社交框架和 SLRequest 对象向 Twitter/Facebook API 发出请求- http://developer.apple.com/library/ios/#doc
我正在尝试在我的iOS应用程序中实现“在Twitter上关注我们”。这是我的代码。但是它给出错误“无法准备URL请求”。请帮忙! ACAccountStore *accountStore = [[AC
如何使用 SLRequest 将 UIImage 附加到 Facebook 上的帖子。这是我的代码: SLRequest *facebookRequest = [SLRequest requestFo
我有两种方法可以将图片分享到 Facebook。 SDK 方式(工作完美): FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent al
我是 Sam。目前我正在我的应用程序中开发 Twitter 分享。我需要在没有 ComposeController 的情况下实现它。我需要与来自社交框架的 SLRequest 集成。我使用的代码如下
我正在使用适用于 iOS 6 的新社交 API 实现 Facebook 视频上传,一切正常,只是我没有找到一种方法来了解上传的进度……Apple 似乎唯一的 API提供的是,如果上传完成或者失败,有可
我想在 twitter 中使用 SLRequest 获取用户个人资料信息? 目前我正在编码 NSURL *url = [NSURL URLWithString:@"https://api.twit
我正在尝试使用 SLRequest iOS API 获取 facebook 数据,这似乎工作正常 - NSDictionary *parameters = @{}; NSURL *feedURL =
我正在尝试使用 SLRequest 以编程方式将图像(从 iOS 设备)上传到用户的 Twitter 帐户。推文文本已上传到推文中,但图片从未出现。响应状态码为200。 显然基础工作正常,否则推文根本
我正在尝试分享动画 GIF 但默认 UIActivityViewController Twitter 分享 doesn't support但它会将其“缩小”为静态 JPG,我必须按照 this art
我已经使用 SLRequest 获取个人资料信息,并且我遵循了 Getting user profile picture in iOS6?获取个人资料图片。但它返回 50x50 图像尺寸。我需要大尺寸
在使用 SLRequest 时,有一些关于在 iOS 应用程序中发送推文的很棒的教程。然而,他们中的大多数人只是从 Twitter 帐户中提取最后一个对象。由于在 iOS 设置中可以登录多个 Twit
我目前正在使用 SLRequest 让用户喜欢我们的应用程序页面以换取虚拟货币/新角色。我需要设置哪些参数才能允许这样做?我已经获得了 public_actions 权限。 我发现了以下内容,但我仍然
我有上传照片的应用程序,就像在 Instagram 应用程序中一样。首先我的应用上传照片并返回链接。然后在状态消息中发送链接。当我在我的 iPhone 上测试时,一切正常,但当我在另一部 iPhone
我正在尝试将 Twitter 时间轴添加到我的 iOS 应用程序中。推特在这里给出了官方的示例代码: https://dev.twitter.com/docs/ios/making-api-reque
让我澄清一下。我没有使用 Facebook SDK。我使用 iOS SDK 的 Social.framework 和 ACAccountStore 访问 Facebook 帐户,并使用它/它们发帖。
我是一名优秀的程序员,十分优秀!