Twitter APIが利用できない!?

このQ&Aのポイント
  • Twitter APIを利用してWebアプリケーションを作成しようとしていますが、レンタルサーバに移すとタイムラインの取得ができません。
  • OAuth認証は成功しており、アクセストークン等は取得できていますが、タイムラインの取得だけが失敗し、NULLが返されています。
  • GETメソッドの呼び出しだけが失敗しており、POSTメソッドは正常に動作しています。さくらインターネットのレンタルサーバや個人のレンタルサーバを利用しているのですが、どちらも同様の問題が起きています。php.iniの設定に問題があるのか、Twitter APIにアクセスできないサーバがあるのか、初心者なのでよくわかりません。どうすれば解決できるでしょうか。
回答を見る
  • ベストアンサー

Twitter APIが利用できない!?

Twitter APIを利用してWebアプリケーションを作成しようとしています。手始めにローカル開発環境でタイムラインを取得したのですが、レンタルサーバに移すと取得できません。 <?php require_once( 'twitteroauth.php' ); (OAuth認証でアクセストークン等を取得する処理は省略) $TwitterOAuth = new TwitterOAuth('コンシューマキー', 'コンシューマシークレット', 'アクセストークン', 'アクセスシークレット'); // タイムラインを取得 $timeLine = $TwitterOAuth->get('statuses/home_timeline'); (以下、表示処理は省略) ?> PHPを使ってこのように書きました。(今回はライブラリとして、TwitterOAuthを使わせていただきました。) ローカル開発環境でこのプログラムを動かすと、正常に動作しました。 しかし、これをレンタルサーバに移すと、動かなくなります・・・ 以下、状況をまとめました。 ・色々試してみるとレンタルサーバ上においても、OAuth認証はうまくいっている模様。  アクセストークン等は取得できていた。 ・タイムラインの取得処理だけが失敗して、NULLが入ってしまっている。   → Twitter APIへのアクセスができない? ・しかし、$TwitterOAuth->post('statuses/update', array('status' =>'テストツイート'));は  うまくいく。   → 試してみると、GETメソッドのものだけが失敗する模様 ・ライブラリを他の物にして、同じ機能を実装しても同様のことが起こります。  ライブラリ無しで書いてみても同じでした。ローカルではうまくいくのに・・・ ・利用しているレンタルサーバは、さくらインターネットのレンタルサーバ。  もう1つは個人の方が運営しているレンタルサーバ。  どちらもライブラリの動作環境は満たしている。 php.iniの問題でしょうか。 それともTwitter APIの利用できないサーバがあるのでしょうか。 初心者なりに色々考えてみましたがわかりませんでした。 どうしたらよいでしょうか。

  • PHP
  • 回答数3
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.3

連投失礼します さっきの関数PHP5.5からだったのでこちらで。 http://www.php.net/manual/ja/function.json-last-error.php

kou_ryo
質問者

お礼

早速のご回答ありがとうございます。 json_last_errorを使うと、「そのような関数は無い」と怒られました。 「バージョン足りてるのに何故?」と色々調べると、同じフォルダ内に、ver4.0台のphp.iniがあり、消したら問題なく動きました;; 気付くきっかけになりました。ありがとうございました。 UltimateOAuthを使ってみましたが、既存のライブラリより容易にAPIを利用できるので便利と感じました。 何より環境に依存しないのが良いです。 ぜひ使わせていただきますね^^

その他の回答 (2)

noname#244856
noname#244856
回答No.2
noname#244856
noname#244856
回答No.1

error_reporting(E_ALL); ini_set('display_errors', '1'); をスクリプトの頭に実行してみてください。 何かエラーを吐いているかもしれません。 一応私もライブラリ作ってるので良ければお試しください。 (内容的にはTwitterOAuthの上位互換) https://github.com/Certainist/UltimateOAuth

関連するQ&A

  • ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて

    ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて ツイッターのAPIを利用してアプリケーションを開発しています。 OAUTH認証でアクセストークンの取得まではできたのですが、 アクセストークンを使ってAPIにアクセスしたところページが 存在しないとの旨を伝えられました。 ↓実際のソース https://twitter.com/1/statuses/update.xml?in_reply_to_status_id=自分のID(アクセストークンで取得したもの)&oauth_consumer_key=OAUTHコンシューマキー&oauth_nonce=ランダム文字列&oauth_signature_method=HMAC-SHA1&oauth_timestamp=タイムスタンプ&oauth_token=アクセストークン&oauth_version=1.0&status=つぶやきたい内容&oauth_signature=署名 上記URLにheader()(リダイレクト)でアクセスしています。simplexml_load_file()や file_get_contents();だと何も取得できませんでした。 特に不安なのがin_reply_to_status_idの指定先と実際のリクエストの仕方が良く わからない事です。何とかして呟きたいのでご教示よろしくお願いいたします。

  • PHPでtwitterAPI利用時のサーバー設定

    TwitterAPI(ver1.1)を利用して自分のつぶやきをPHPで取得したいと思います。 認証は「OAuth.php」「twitteroauth.php」の外部ライブラリを利用しています。 下記のファイル構成でレンタルサーバーで試したところ、つぶやきのデータが取得できました。 しかし自分で構築したVPSのサーバーで実行しようとしたところ、処理に長く時間がかかり、「取得できません」という表示になってしまいます。 「OAuth」「twitteroauth」を使うにあたり、サーバーで設定すべき項目はあるのでしょうか? また、下記のプログラムで変数 $twObj にはAPIキーなどが配列で入られているのはわかったのですが、 $req 以降の変数はvar_dumpをしても何も表示されません。 TwitterAPIからどのようなメッセージが返ってきているかを表示させるには、どのようなプログラムを書けばよいのでしょうか? 以上、ご回答よろしくお願いいたします。 環境 ----------------------------- PHP 5.3.3 apach 2.2.3 CentOS 5.4(VPSで構築したLinuxサーバー) ----------------------------- ファイル構成 OAuth.php twitteroauth.php tweet.php を同じディレクトリに配置。 tweet.php ------------------------------------------------------------------------------ require_once 'twitteroauth.php'; $twObj = new TwitterOAuth($ConsumerKey,$ConsumerSecret,$AccessToken,$AccessTokenSecret); //APIのキーは取得したものを代入しています。(記載は省略) $req = $twObj->OAuthRequest('https://api.twitter.com/1.1/statuses/user_timeline.json','GET',array('count'=>'10')); $tweets = json_decode($req); if (isset($tweets) && empty($tweets->errors)) { echo '<dl>'; foreach ($tweets as $val) { echo '<dd>' . $val->text . ''; } echo '</dd></dl>'; } else { echo '取得できません。'; } -----------------------------------------------------------------------

    • ベストアンサー
    • PHP
  • Twitter APIについて

    PHP初心者です。 https://github.com/sizaki30/TwitterAppOAuth を使って https://syncer.jp/twitter-api-matome/get/statuses/user_timeline のようなものを作ることは可能でしょうか? 回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • Twitterでリクエストトークン取得時にエラー

    初歩的な質問で申し訳ありません。 色々と修正してみたのですが、どうしても分からなかったので質問させてください。 TwitterのAPIを利用してbotシステムを作っているのですが、 最初の認証画面のところで、リクエストトークンが取得できなくなってしまいました。 昨日までは正常に動いていたのを確認できていたんですが・・・ ********** 【ソース】 require_once '../twitteroauth-master/twitteroauth/twitteroauth.php'; $api_key = 'xxxxxx'; $api_secret = 'xxxxxxxxxx'; // TwitterOAuth認証を作成 $twitter = new TwitterOAuth($api_key, $api_secret); // トークン情報から認証URLを取得 $request_token = $twitter->getRequestToken('http://hoge.jp/callback.php'); $url = $twitter->getAuthorizeURL($request_token, true); // セッションにデータを保存 $_SESSION["token"] = $request_token["oauth_token"]; $_SESSION["token_secret"] = $request_token["oauth_token_secret"]; // 認証ページ表示 header("Location: $url"); ********** ちなみに、TwitterのAPI取得画面で、Callback URLは設定しています。 また、twitteroauth.phpのhttpファンクションの中でcurl_error($ci)を表示させると、 「Problem with the SSL CA cert (path? access rights?)」 というエラーメッセージが表示されました。 なぜいきなりエラーが起こるようになってしまったのか、何か不備があるのであれば教えていただけないでしょうか。 お知恵を貸していただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • twitterのStreaming apiについて

    PHPとStreamingのGET userを使って 自分のタイムラインのツイートを取得しようと思ったのですが 一度userstreamに接続すると接続しっぱなしになり 最後にはタイムアウトになって終了してしまします うまく回避する方法はないでしょうか? よろしくお願いします <?php // OAuth用ライブラリ「twitteroauth」 require_once 'twitteroauth/twitteroauth.php'; // アプリ登録した際に発行された値を入れて下さい。 $consumer_key = '****************'; $consumer_secret = '********************'; $access_token = '*************************'; $access_token_secret = '*********************'; // オブジェクト生成 $tw_obj = new TwitterOAuth ( $consumer_key, $consumer_secret, $access_token, $access_token_secret); // REST_API指定(今回はタイムラインのREST_API) $tw_rest_api = 'https://userstream.twitter.com/1.1/user.json'; // メソッド指定 $request_method = 'GET'; // オプション指定 $options = array ( 'delimited' => 1950 ); // ユーザータイムライン取得 $tw_obj_request = $tw_obj->OAuthRequest( $tw_rest_api, $request_method, $options); // json形式で取得 $tw_obj_request_json = json_decode($tw_obj_request, true); // 変数生成 $time_line_texts .= ''; // 表示 print($time_line_texts); ?>

    • 締切済み
    • PHP
  • TwitterのAPI制限について

    OAuthを使ってログインしたいと思い色々調べているのですが APIの実行回数の制限についてよく分かりません。 例えば下記のコードでログイン用のURLを取得しています。 TwitterのAPIの制限が1時間に150回となっているのですが 下記のログインURL呼び出しのリクエストはAPI実行回数制限にカウントされるのか? カウントされるのであれば サーバーIP等での実行回数制限になるのか クライアントIP等での実行回数制限になるのか どちらなのでしょうか? サーバーIPでの制限であればまともにサービス展開できませんし 調べてみたのですが確認できませんでした。 ご存知の方がいらっしゃいましたらご教授下さい。 よろしくお願いします。 <? session_start(); require_once("oauth/twitteroauth/twitteroauth.php"); if($_SESSION['oauth_token']===NULL && $_SESSION['oauth_token_secret']===NULL){ $consumer_key = "xxxxxxxxxxxxxxxxxxxxxx"; $consumer_secret = "xxxxxxxxxxxxxxxxxxxxxx"; // OAuthオブジェクト生成 $to = new TwitterOAuth($consumer_key,$consumer_secret); // callbackURLを指定してRequest tokenを取得 $tok = $to->getRequestToken("http://xxxxxxxxx/callback.php"); // セッションに保存 $_SESSION['request_token']=$token=$tok['oauth_token']; $_SESSION['request_token_secret'] = $tok['oauth_token_secret']; // サインインするためのURLを取得 $url = $to->getAuthorizeURL($token); print "<a href=\"$url\">サインイン</a>"; } else{ //サインインしていればヘッダーを出力 include("user_header.php"); } ?>

    • ベストアンサー
    • PHP
  • PHPでTwitter APIを使いたい

    環境(windows,PHP,xampp) 行き詰っているところはcomposerの使い方です。composerをインストールしたのは良いのですが、そこから何をしていいのかわかりません。 ディレクトリとしては(C)/xampp/htdocs/php/twitter/index.php という感じです。twitterファイルのindex.phpにはtwitterから発行されたアクセストークンなどが入っています。 composerを使いtwitteroauthを導入したいのですが、他サイトなどを 見てcomposer.jsonファイルなるもを作ったのは良いのですが、どこに置いたらいいのかもわかりません。そしてどこにcomposer installを 書けばいいのでしょうか? 分かる方がいればお教えください。

    • ベストアンサー
    • PHP
  • Twitterフォロワー数 取得 API xml

    【 Twitterフォロワー数 取得 API xml 】 twitterのフォロワー数を取得しwebsiteに表示したいです。 下記のcodeを記述したのですが、 取得出来ない場合があります。 (Aのサイトですと表示されBのサイトですと表示されない) <?php $urlt = str_replace(0xefbbbf, '', file_get_contents('http://api.twitter.com/1/statuses/user_timeline.xml?id=□□□□□□')); $xmlt = simplexml_load_string($urlt); print $xmlt->status->user->followers_count; ?> ※上記の □□□□□□ 部分には 表示させたいtwitterのscreen_nameかidをいれます。 どうしてもわからずこちらに質問させて頂きました。。。 よろしくお願いいたします。。

    • 締切済み
    • PHP
  • Twitter、FacebookでフォローAPI

    Twitter、FacebookでフォローをしてもらうAPIを探してます! 現在、PHPなどを利用してTwitter、Facebookで相手のタイムラインに投稿を行い なおかつ、フォロー(いいね?)をしてもらう、という機能を実装したいと思っております。 Twitterは「twitteroauth」を利用すればいけるのかと思い、暫く調べておりましたが フォローするAPIは存在しても、フォローをしてもらう、というのが不明でした。 Facebookはよく企業などのアカウントを「いいね」すると自分のタイムライン上に 企業の投稿などが流れるようになるのがありますが、それをFacebookアプリ承認などを 介して自動的に行える方法を探しております。 文章乱れておりまして申し訳ございません。 補足事項ありましたら細くいたしますのでご指摘頂けますと幸いです。 何卒、よろしくお願いいたします。

    • 締切済み
    • PHP
  • Twitter APIでエラーが出るのですが

    Twitter APIを作成して、 〇〇にアカウントの利用を許可しますか? このアプリケーションは次のことができます。 タイムラインのツイートを見る。 フォローしている人を見る、新しくフォローする プロフィールを更新する。 ツイートする。 ダイレクトメッセージを見る。 とメッセージが出て、Twitterのアカウントを許可しようとすると 「Not FoundThe requested URL /callback.php was not found on this server.」 Apache Server at 〇〇.net Port 80 というエラーが出て、ブラウザの戻るを押すと 「エラーが発生しましたこのページのリクエスト・トークンが無効です。 使用済み、または期限切れの可能性があります。 送信したサイトまたはアプリケーションに戻って再度お試しください。 何らかの手違いがあったかもしれません。」 というエラーが出ます。 「API Key」「API secret」等、正確に入力しても ウェブサイト、コールバックURLを実在する間違いの無いURLを入力しても PCのキャッシュをクリアしてみても、何度やってもこのエラーが出ます。 それともTwitter APIでは無く、私のレンタルサーバー側に何か問題で あるのでしょうか? 原因が全く分からないのですが、どなたかお分かりになる方、 ご指導の方、よろしくお願い致します。