1

私のアプリは、特定の TV ハッシュタグに基づいてツイートの短いリストを表示し、さらにツイートを投稿する機能を備えています。

しかし、現在、Twitter はすべてのリクエストに対して oauth を行っており、古い search.atom API を使用していたため、私のツイート リストは表示されません。

したがって、Sharekit を使用して検索 API にアクセスし、OAuth 資格情報を渡すにはどうすればよいでしょうか。これにより、ユーザーは、ツイートを表示してセッション間で投稿するために 1 回だけ認証を行うことができます。

SHKRequest を使用してみましたが、ShareKit が既に承認しているため、この情報が通過することを期待しています。これを行う他の方法はありますか、それとも私の使い方が悪い/間違っているだけですか。

request = [[[SHKRequest alloc] initWithURL:[NSURL URLWithString:@"https://api.twitter.com/1.1/search/tweets.json?q=twitter&result_type=recent"]
                          delegate:self
                isFinishedSelector:@selector(sendFinishedSearch:)
                            params:nil
                            method:@"GET"
                         autostart:YES] autorelease];

4.3 API との互換性を維持する必要があるため、iOS5 の Twitter API だけを使用することはできません。

免責事項: 私は誰かからプロジェクトを継承しているので、プロジェクトを変更しながら XCode/ObjC の知識を学んでいるので (私は C/C++ のバックグラウンドを持っています)、私の無知を無視してください。

4

2 に答える 2

-1

IN SHKOAuthSharer.m クラス メソッドでアクセス トークンを取得します。

- (void)tokenAccessTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data 
{
    if (SHKDebugShowLogs) // check so we don't have to alloc the string with the data if we aren't logging
        SHKLog(@"tokenAccessTicket Response Body: %@", [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]);

    ///[[SHKActivityIndicator currentIndicator] hide];

    if (ticket.didSucceed) 
    {
        NSString *responseBody = [[NSString alloc] initWithData:data
                                                       encoding:NSUTF8StringEncoding];

        //piyush Added
        NSArray *strArray = [responseBody componentsSeparatedByString:@"="];        
        [[NSUserDefaults standardUserDefaults]setObject:[strArray objectAtIndex:([strArray count]-1)] forKey:@"TwitterUsername"];


        **self.accessToken** = [[OAToken alloc] initWithHTTPResponseBody:responseBody];
        [responseBody release];

        [self storeAccessToken];

        //[self tryPendingAction];

        [[NSNotificationCenter defaultCenter] postNotificationName:@"TwitterDidLogin" object:nil];
    }


    else
        // TODO - better error handling here
        [self tokenAccessTicket:ticket didFailWithError:[SHK error:SHKLocalizedString(@"There was a problem requesting access from %@", [self sharerTitle])]];

}
于 2013-06-28T12:23:01.947 に答える