1

特定の 1 つの Twitter ページのフィードを表示したい。ユーザーが誰であるかに関係なく、取得するツイートの数と取得する Twitter ユーザーを指定できるようにしたいと考えています (これはハードコーディングされます)。

次のコードを使用して認証を開始しました

self.accountStore = ストア; ACAccountType *twitterAccountType = [self.accountStore accountTypeWithAccountTypeIdentifier: ACAccountTypeIdentifierTwitter];

この下には多くのコードがあり、Twitter のドキュメントに従っています。基本的に、アカウントが設定されていない場合、これは UIAlertView をスローします。

私は、このアプリのユーザーが次の事実を考慮したいと思います: 1 - Twitter アカウントを持っていない可能性がある 2 - 携帯電話で Twitter を使用していないため、設定で設定されていない

このアプリケーションでは、Twitter フィードがニュース フィードとして機能するので、私の質問は、

とにかく、アカウントを経由することなく、ハードコードされたデフォルトのユーザーを Twitter API に提供できますか?

accountStore がどのような情報を取得しているかを知りたいので、同様の構造を構築した後、それを複製して Twitter API に送信することができます。

私はiPhoneプログラミングに少し慣れていないので、これのいくつかが非常に明白である場合はご容赦ください.

お時間をいただきありがとうございます。

4

2 に答える 2

2

私の要件に役立つ答えを見つけました。

私の要件は、iPhone アプリを開発していて、Twitter で特定のユーザーからの特定のツイートが必要であるということでした。これは、古い twitter api を使用すると非常に簡単でしたが、v1.1 を使用すると、ユーザー認証が必要でした。

iOS は独自のソーシャル SDK を提供していますが、ユーザーが Twitter を持っていないか、携帯電話にサインインしていなくてもフィードを受信して​​いる可能性があるという事実を考慮したかったのです。私の調査では、ほとんどすべての解決策でユーザーの iPhone 設定をチェックして、ユーザーが Twitter アカウントを設定していることを確認したため、何も見つかりませんでした。

これらは私の制約であったため、PHP を使用して Web サービスを作成し、Twitter で認証して、必要なツイートを取得することを検討することにしました。それらを JSON にエンコードし、エコーします。

次に、IOS アプリからこの Web サービスを呼び出してデシリアライズし、必要な方法で使用しました。

今いくつかのコード。

新しい twitter API で PHP を使用する方法の答えのほとんどは、 https ://github.com/J7mbo/twitter-api-php にあります。ここからファイルを取得すると、彼が提供する例を見ることができます。私は下に小さなものを与えました。

ここに私が使用する必要があったいくつかのステップがあります

  • ツイッターでアプリを作る。https://dev.twitter.com/にアクセスし、Twitter アカウントでログインします。そこに着いたら、アプリケーションを作成する必要があります。
  • 上記からファイルを取得し、TwitterAPIExchange.php をサーバーに配置します。
  • PHP ファイルを作成し、require_once('TwitterAPIExchange.php')を配置します。頂点で
  • アプリケーションを作成した後、ダッシュボードから、twitter API で認証するために必要な情報が提供されます。そのようにあなたのphpでそれを使用してください

    $settings = array( 'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN", 'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET", 'consumer_key' => "YOUR_CONSUMER_KEY", 'consumer_secret' => "YOUR_CONSUMER_SECRET" );

この配列を設定したら、必要なものを設定するために必要なものを指定するために進むことができます

$url = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
$getfields = '?screen_name=screen_name_you_want&count=number_of_tweets_you_want';
$requestMethod = 'GET';

URL には、スクリプトが認証された後に取得するリソースが示されています。その下にパラメータがあります。取得するツイートのスクリーン名と数。リクエストメソッドのプロトコルはGETになります。何かをタイムラインに投稿したい場合は、POST を使用する必要がありますが、開発者アカウントからアプリへのアクセスも変更する必要があります。現在、私のアプリには読み取りアクセスのみが必要なので、読み取りアクセスしかありません。

次に、実行する時間です

$twitter = new TwitterAPIExchange($settings); 
$tweets = $twitter->setGetfield($getfield)
             ->buildOauth($url, $requestMethod)
             ->performRequest();

J7mbo の github の例を見ると、彼はタイムライン全体をエコーし​​ます。それを実行して、それがどのように見えるかを確認することができます。

$tweet_array = array();
$index = 1;
foreach($tweets as $feed=>$item)
{
   $arr_index = 'tweet'.$index;
   $tweet_array[$arr_index] => $item['text'];
   $index++;
}

echo json_encode($arr_index);

これは、"tweet1"=>"Latest Tweet","tweet2"=>"Second Latest Tweet" のような json をエコーし​​ます。

Xcode からこの URL を呼び出して、json フィードを取得し、必要に応じて使用できます。

余談ですが、スクリプトが実行されるたびに、認証を行ってフィードを取得するのに時間がかかります。これは IOS アプリを対象としていたため、キャッシュを適用することをお勧めします。問題のユーザーが Twitter を更新する頻度に応じて、time_limit を設定できます。ツイートを取得するたびに、それをデータベースに保存します。次のユーザーがツイートを要求した場合は、制限時間を確認し、それより短い場合はデータベースから取得し、制限時間を過ぎている場合はデータベースを更新し、ユーザーに新しい結果を送信します。

J7mbo の GitHub ライブラリと、tumblr を使用したより簡単な回避策を指摘した MZimmerman に感謝します。

ありがとう。

于 2013-07-14T08:48:48.950 に答える
0

Twitter は、つぶやきなどの情報を取得するために承認が必要なため、実際にはこれが今より難しくなると思います。ただし、Tumblr は認証を必要としません。できることは、Twitter 経由で投稿した更新を Tumblr に投稿することです。

次に、次のように、単純な URL を使用して Tumblr Web API を使用して、この情報に簡単にアクセスできます。

http://username.tumblr.com/api/read/json?num=25

これにより、長さ 25 のフィードが返され、それを使用NSJSONSerializationして解析して NSDictionary 形式にすることができます。これは、必要に応じて簡単に処理できます。

于 2013-07-11T15:18:44.967 に答える