MGTwitterEngine - 收到推文

时间:2011-01-16 18:02:27

标签: cocoa mgtwitterengine

我正在尝试使用MGTwitterEngine

收藏推文

我正在使用“Tweet”我制作的一个子类来处理用户id,名称等。所以我把它放到一个字符串中,然后转换为一个可以用来处理fav的行为的数字。推文

我的代码:http://pastie.org/1467311

1 个答案:

答案 0 :(得分:2)

这是一篇非常古老的帖子,并不确定是否有人在寻找它,但是在一些“昙花一现”之后,我设法做到了这一点。这是你要做的:

  1. 声明您的类实现了MGTwitterEngineDelegate
  2. 实施至少以下方法以获取状态

    (void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier
    
  3. statuses数组在第一个位置有一个NSDictionary。按如下方式提取

    NSDictionary *status = (NSDictionary *)[statuses objectAtIndex:0];
    
  4. 从词典“source_api_request_type”和“id”中提取两个键。将它们保存为NSString值。

  5. 更新MGTwitterEngine.h和MGTwitterEngine.m以更改markUpdate方法的方法签名,以将updateID作为NSString而不是unsigned int发送。更改后它将类似于以下内容:

    (NSString *)markUpdate:(NSString *)updateID asFavorite:(BOOL)flag; // favorites/create, favorites/destroy
    
  6. 将markUpdate方法中的%u更改为%@,以便正确应用输入参数更改。 (您必须在方法的两个位置进行更改)

  7. 在您的代码中,您将使用与以下类似的内容发送推文。

    [twitterEngine sendUpdate: @"My Tweet Text"]; 
    
  8. 一旦成功发布推文,这将引发statusRecieved事件。在前面提到的statusRecieved事件中,我们需要两个值tweetId和请求类型。

  9. 使用以下代码检查请求Type == 5,如果是调用markUpdate方法,则将tweet Id和boolean值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];
            }
        }
    }
    
  10. “请求类型”5的秘诀是新的推文帖子的“api请求ID”为5,我们希望只将新推文标记为收藏。 (当您在推文被标记为收藏夹后观看ID时,状态为26)。

  11. 随着iOS 5迫在眉睫,MGTwitterEngine将很快被弃用。但在我自己的项目中想出这个很有趣。希望有人觉得它很有用。