我正在尝试使用 MGTwitterEngine 收藏一条推文
我正在使用“Tweet”一个我制作的处理用户ID、姓名等的子类。所以我把它放入一个字符串中,然后将其转换为一个可用于处理fav行为的数字。一条推文
我的代码: http: //pastie.org/1467311
我正在尝试使用 MGTwitterEngine 收藏一条推文
我正在使用“Tweet”一个我制作的处理用户ID、姓名等的子类。所以我把它放入一个字符串中,然后将其转换为一个可用于处理fav行为的数字。一条推文
我的代码: http: //pastie.org/1467311
这是一个非常古老的帖子,不确定是否有人在寻找它,但在经历了一些“碰巧”之后,我今天设法做到了这一点。这是你必须做的:
至少实现以下方法来获取状态
(void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier
statuses 数组在第一个位置有一个 NSDictionary。提取如下
NSDictionary *status = (NSDictionary *)[statuses objectAtIndex:0];
从字典“source_api_request_type”和“id”中提取两个键。将它们都保存为 NSString 值。
更新 MGTwitterEngine.h 和 MGTwitterEngine.m 以更改 markUpdate 方法的方法签名,以将 updateID 作为 NSString 而不是 unsigned int 发送。更改后将类似于以下内容:
(NSString *)markUpdate:(NSString *)updateID asFavorite:(BOOL)flag; // favorites/create, favorites/destroy
%u
将in markUpdate 方法更改为,%@
以便正确应用输入参数更改。(您必须在方法中的两个地方进行更改)
回到您的代码中,您将使用类似于以下内容的内容来发送推文。
[twitterEngine sendUpdate: @"My Tweet Text"];
一旦成功发布推文,这将引发 statusRecieved 事件。在前面提到的 statusRecieved 事件中,我们需要两个值 tweetId 和请求类型。
使用以下代码检查请求类型是否 == 5,如果是调用 markUpdate 方法,则通过将推文 ID 和布尔值 YES 传递给收藏(或 NO 取消收藏)推文。您的代码将如下所示:
(void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier
{
if([statuses count] > 0)
{
NSDictionary *status = (NSDictionary *)[statuses objectAtIndex:0];
NSString *stringId = (NSString *)[status objectForKey:@"id"];
NSNumber *requestType = (NSNumber *)[status objectForKey:@"source_api_request_type"];
NSLog(@"Tweet ID String - %@ and Request Type: %@.", stringId, requestType);
if ([requestType isEqualToNumber: [NSNumber numberWithInt: 5]])
{
[twitterEngine markUpdate: stringId asFavorite:YES];
}
}
}
'request type' 5 的秘诀在于,一条新推文发布的 'api request id' 为 5,我们只想将新推文标记为收藏。(当您在推文被标记为收藏后观看 id 时,状态为 26)。
随着 iOS 5 的临近,MGTwitterEngine 很快就会被弃用。但在我自己的项目中解决这个问题对我来说很有趣。希望有人觉得它有用。