0

我已将 twitter 与我的 iOS 5 应用程序集成在一起,简而言之,推文表工作正常,但每当我点击推文按钮时,它都会显示 twitter 界面,我设法通过不包括 self presentmodalviewcontroller 来摆脱它在代码中,但我找不到自动化推文的方法,因为除非我点击推文表上的发送按钮,否则推文不会发推文。

有没有解决的办法?本质上,我希望我的推文在我点击推文按钮的那一刻被推文,我不想再次点击推文表上的发送按钮?可能的?

编辑:根据下面答案中发布的链接,我浏览了一些 twitter API 示例并在此处找到此代码https://dev.twitter.com/docs/ios/posting-images-using-twrequest 。它工作正常但是当应用程序到达由我说应用程序崩溃的评论标记的部分时崩溃。,错误'NSInvalidARgumentException''数据参数'是零和一堆数字。

此外,我无法使用此行设置帐户,[request setAccount:[self.accounts objectAtIndex:0]]; 它给了我一个错误,在“myviewcontrollername”类型的对象上找不到属性帐户

(void)performTWRequestUpload
    {
    NSURL *url = 
    [NSURL URLWithString:
      @"https://upload.twitter.com/1/statuses/update_with_media.json"];

  //  Create a POST request for the target endpoint
    TWRequest *request = 
    [[TWRequest alloc] initWithURL:url 
                        parameters:nil 
                     requestMethod:TWRequestMethodPOST];

  //  self.accounts is an array of all available accounts; 
  //  we use the first one for simplicity
     [request setAccount:[self.accounts objectAtIndex:0]];

  //  The "larry.png" is an image that we have locally
  UIImage *image = [UIImage imageNamed:@"larry.png"];

  //  Obtain NSData from the UIImage 
  NSData *imageData = UIImagePNGRepresentation(image);

  //  Add the data of the image with the 
  //  correct parameter name, "media[]"
  [request addMultiPartData:imageData 
                   withName:@"media[]" 
                       type:@"multipart/form-data"];

  // NB: Our status must be passed as part of the multipart form data
  NSString *status = @"just setting up my twttr #iOS5";

  //  Add the data of the status as parameter "status"
  [request addMultiPartData:[status dataUsingEncoding:NSUTF8StringEncoding] 
                   withName:@"status" 
                       type:@"multipart/form-data"];

  //  Perform the request.  
  //    Note that -[performRequestWithHandler] may be called on any thread,
  //    so you should explicitly dispatch any UI operations to the main thread 

//Problem code part upon reaching which app crashes
[request performRequestWithHandler:
    ^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
      NSDictionary *dict = 
        (NSDictionary *)[NSJSONSerialization 
          JSONObjectWithData:responseData options:0 error:nil];

      // Log the result
      NSLog(@"%@", dict);

      dispatch_async(dispatch_get_main_queue(), ^{
          // perform an action that updates the UI...
          });
    }];
}****
4

1 回答 1

1

是的,这可以使用较低级别的 API,即 class TWRequest。有了这个,你可以在不显示 UI 的情况下执行各种 Twitter 请求。您还可以提供自己的用户界面来发推文。

在此处查看我的其他答案,也可以查看有关如何使用它的示例代码: https ://stackoverflow.com/a/9751878/550177

您还需要阅读 twitter API 文档。

编辑:

  • 在 POST 请求中,确保您附加到请求的图像存在。在您的示例代码中,应用程序包中必须有一个名为“larry.png”的文件。检查 imageData - 它不能为零!

  • 为了使 Twitter 的示例代码正常工作,您需要将 all 保存ACAccount在一个名为accounts(您从中获得的所有帐户的 NSArray)的属性中requestAccessToAccountsWithType:

于 2012-06-15T22:31:51.097 回答