ここから本文です

TwitterAPIについての質問です。 下記のコードであるワードを含み、ある場所から6...

acc********さん

2014/8/111:32:47

TwitterAPIについての質問です。
下記のコードであるワードを含み、ある場所から600m以内でつぶやかれたツイートを取得することができました。

それにくわえて、以下の条件も含むツイートを取得したいのですが、コードが書けません。どうかお力をお貸しください。
①ツイート投稿者の位置情報(緯度経度)の取得
②期間(いつからいつまでの)を指定してのツイート取得 ex.2013年7月1日から2014年6月30日の間のツイート
③csv出力&csvに出力したときに文字化けしないよう(Excel上で)にするコードをいれる

また、①〜③にくわえて、例えば、100件取得した場合に、101~200件目までのツイートの取得のやり方、パラメータのqを指定せずに、単にある場所から600m以内でつぶやかれたツイートを取得する方法はありますか??

以下がコードになります。
<?php

require 'TwistOAuth.php';

header('Content-Type: text/plain; charset=utf-8');

try {
____
____if (!$fp = @fopen('php://stdout', 'wb')) {
________throw new Exception(error_get_last()['message']);
____}
____$to = new TwistOAuth('CK', 'CS', 'AT', 'AS');
____$p = [
________'q' => 'キーワード',
________'geocode' => '緯度,経度,0.6km',
____];
____$statuses = $to->get('search/tweets', $p)->statuses;
____foreach ($statuses as $status) {
________fputcsv($fp, [
____________$status->user->screen_name,
____________$status->user->name,
____________htmlspecialchars_decode($status->text, ENT_NOQUOTES),
____________$status->created_at,
________]);
____}
____
} catch (Exception $e) {
____
____echo 'エラー: ' . $e->getMessage();
____
}

閲覧数:
157
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

ryo********さん

2014/8/117:18:22

公式ドキュメントをよく読んでください。

【全部に共通すること】

{"a":"b", "c":"d"} はオブジェクトを表します。
「->a」「->c」のようにアクセスできます。

["a", "b"] は配列を表します。
「[0]」「[1]」のようにアクセスできます。

【GET search/tweets】
https://dev.twitter.com/docs/api/1.1/get/search/tweets

・連想配列 $p で指定するパラメータはここに載っています。
・レスポンス例もここに載っています。

【ツイートオブジェクトのフィールド】
https://dev.twitter.com/docs/platform-objects/tweets

・$status が持つプロパティについての詳細はこちらに載っています。

>> ①ツイート投稿者の位置情報(緯度経度)の取得

$status->coordinates->coordinates[0] が経度
$status->coordinates->coordinates[1] が緯度

ただしドキュメントにも書いてある通り「Nullable(NULL値をとりうる)」ので、最初に

if ($status->coordinates !== null) { }

のようなチェックが必要です。

>> ②期間(いつからいつまでの)を指定してのツイート取得 ex.2013年7月1日から2014年6月30日の間のツイート

ドキュメントに記載されている「until」パラメータで期間開始日は設定できます。但し、終了日は設定できません。仕様です。

>> ③csv出力&csvに出力したときに文字化けしないよう(Excel上で)にするコードをいれる

以前に説明したと思いますが、fopen直後にBOMを書き込んでおけば文字化けしなくなります。CSV出力はfopenの第1引数で指定しているものをファイル名に変えるだけです。

fwrite($fp, "\xEF\xBB\xBF");

>> 100件取得した場合に、101~200件目までのツイートの取得のやり方、

TwistOAuthのExampleにやり方を記載しています。
https://github.com/mpyw/TwistOAuth/blob/master/README_EXAMPLES.md#w...

>> パラメータのqを指定せずに、単にある場所から600m以内でつぶやかれたツイートを取得する方法はありますか??

公式ドキュメントに書いてある通りこのパラメータは「required」です。出来ません。

この回答は投票によってベストアンサーに選ばれました!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる