4

iOS 5 で Twitter Framework を使用して共有しようとしています。ユーザーは使用するアカウントを選択するので、アプリは選択したアカウントを使用して共有します。

しかし、共有がperformRequestWithHandler何も起こらない場合、errorリターンは発生しませんnull

私のコード:

for (int i = 0; i < [_accountsArray count]; i++) {
//searching for a selected account
            if ([[[_accountsArray objectAtIndex:i] username] isEqualToString:[self getUserName]]) {
                actualUser = [_accountsArray objectAtIndex:i];
                TWRequest *sendTweet = [[TWRequest alloc] initWithURL:[NSURL URLWithString:@"https://upload.twitter.com/1/statuses/update_with_media.json"]
                                                            parameters:nil
                                                        requestMethod:TWRequestMethodPOST];

                [sendTweet addMultiPartData:[text dataUsingEncoding:NSUTF8StringEncoding] withName:@"status" type:@"multipart/form-data"];
                ACAccountStore *account = [[ACAccountStore alloc] init];

                [sendTweet setAccount:[account.accounts objectAtIndex:i]];
                NSLog(@"%@",sendTweet.account);

                [sendTweet performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {

                    NSLog(@"responseData: %@\n",  responseData);
                    NSLog(@"urlResponse: %@\n", urlResponse);
                    NSLog(@"error: %@",error);

                }];
            }
        }

誰でも私を助けることができますか?

ありがとう

4

1 に答える 1

1

iOSでツイートを送信するのは非常に簡単です。昨夜、古い手法を使用せず、代わりに新しいSLComposeViewController手法を使用するようにアプリを更新しました。以下は、ユーザーが画像を添付してツイートを送信できるようにする、アプリケーションにあるコードのスニペットです。基本的に、まったく同じコードを使用してFacebookに投稿できます。代わりにこのコードを使用してみてください。また、ユーザーがツイートを送信するアカウントを選択できるようにする必要があります(この「デフォルトアカウント」の送信設定は、電話の設定に埋め込まれていると思います)。

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
        SLComposeViewController *mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
        [mySLComposerSheet setInitialText:@"Sample Tweet Text"];

        //Add the image the user is working with
        [mySLComposerSheet addImage:self.workingImage];

        //Add a URL if desired
        //[mySLComposerSheet addURL:[NSURL URLWithString:@"http://google.com"]];

        //Pop up the post to the user so they can edit and submit
        [self presentViewController:mySLComposerSheet animated:YES completion:nil];

        //Handle the event
        [mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
            switch (result) {
                case SLComposeViewControllerResultCancelled:
                    NSLog(@"Tweet Canceled");
                case SLComposeViewControllerResultDone:
                    NSLog(@"Tweet Done");
                    break;
                default:
                    break;
            }
        }];

    } else {
        //Can't send tweets, show error
        NSLog(@"User doesn't have twitter setup");
    }
于 2012-10-20T18:14:58.520 に答える