私はTwitter REST/Streaming APIと一緒に働いています。 REST APIにアクセスするには、NSMutableURLRequest
(アクセストークンやクエリなどのパラメータが含まれています)を作成します。私はNSURLSession
と一緒に要求を使用してデータを読み込みます。変更可能な要求オブジェクトを作成するライブラリを使用しています(要求オブジェクトを使用しない場合、Twitter APIは関連するユーザーデータにアクセスできません)。Twitter Streaming API - Objective-C
今、私はストリーミングAPI経由でTwitterのタイムラインを読み込もうとしています。私が抱えている問題の1つは、NSStream
オブジェクトを持つカスタムの変更可能なリクエストオブジェクトの使い方を理解できないということです。私ができるのは、host
URLリンクを設定することだけです。しかし、Twitter APIがユーザーデータへのアクセスを許可するためには、ユーザーOAuthデータ(変更可能なリクエストオブジェクトに含まれています)を渡す必要があるため、これでは十分ではありません。
ストリームにリクエストオブジェクトを追加するにはどうすればよいですか?ここに私のコードです:
NSURL *website = [NSURL URLWithString:@"https://userstream.twitter.com/1.1/user.json"];
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)[website host], 80, &readStream, &writeStream);
NSInputStream *inputStream = (__bridge_transfer NSInputStream *)readStream;
NSOutputStream *outputStream = (__bridge_transfer NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];