• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPのPEARのServices_Twitterのエラーについて)

PHPのPEARのServices_Twitterのエラーについて

liv2007の回答

  • ベストアンサー
  • liv2007
  • ベストアンサー率81% (378/464)
回答No.2

(一部問題はありましたが)こちらでは提示されたコードも 問題なく動作しました。 ライブラリ等は正常に読み込まれているでしょうか? 『Unsupported』とありますので、サポートされていない 関数か何かを呼び出しているのだと思いますが・・・ Services_Twitterは「Services」以下のフォルダだけでなく、 「data」フォルダも必要ですが、すべてきちんとアップロード してありますか? ※Servicesフォルダと同階層にアップしてある必要があります。 一部問題があった件についてですが、以下の部分になります。 // get recent posts on public timeline $response = $twitter->statuses->public_timeline(); if (count($response->status) > 0) { echo '<h2>Recent public timeline updates</h2>'; foreach ($response->status as $status) { このままだと取得したタイムラインが表示されませんので、 以下のように修正します。 // get recent posts on public timeline $response = $twitter->statuses->public_timeline(); if (count($response) > 0) { echo '<h2>Recent public timeline updates</h2>'; foreach ($response as $status) { ※修正するのは2行だけです。 (「$response->status」を「$response」にしてあります。) それから、気になった事なのですが、Services_Twitterと HTTP_OAuthの組み合わせの他に、twitteroauthを使用して いますが、どちらか一つに統一してはいかがでしょうか? Services_TwitterとHTTP_OAuthの組み合わせで利用する場合 は、以下のコードを修正していけば良いと思います。 http://zuzara.com/blog/2010/01/20/complete-working-sample-for-services_twitter-oauth-in-php-pear/ ※「http://zuzara.com/twitter_oauth.php」は、自分のアプリ のURLに変更します。 ※「http_redirect()」が使用できない場合は、「header()」が 代用できます。

brotaro
質問者

お礼

丁寧にご教示いただきましてありがとうございました。お礼が遅くなり申し訳ございません。 ご指摘いただいた内容を修正させていただいた試したところ、エラー内容が変わりまして、「Call to undefined function json_decode() 」となりました。これは、現在使っているServer QueenというレンタルサーバのPHPバージョンが古くServices_Twitterで使用しているjson_decode()という関数が使えずに、エラーになっているようです。PHPのバージョンアップが出来れば上記エラーもなくなり、ご指摘いただいた内容でうまくいきそうです。別の環境でも試してみます。ありがとうございました。

関連するQ&A

  • Services_Twitterで困っています

    レンタルサーバーを利用しているので、 http://labs.transrain.net/products/services_twitter/ PEARが使えない場合の tarを解凍して所定のディレクトリに置きました。 簡単な、 http://phpspot.org/blog/archives/2009/04/phptwitter.html にあった、 <?php // include class include_once 'Services/Twitter.php'; try { // Services_Twitterインスタンスの初期化 // ログイン( ID, PASS を渡す ) $service = new Services_Twitter('id', 'password'); // ステータス更新 $service->statuses->update('Having dinner with friends'); // ログアウトする $service->account->end_session(); } catch (Exception $e) { // エラー処理 die('ERROR: ' . $e->getMessage()); } ?> という投稿するサンプルを自分のidとpasswordを入力して 動かしてみたのですが、 Fatal error: Call to a member function update() on a non-object in というエラーがでます。 最初の行でログインに失敗しオブジェクトが生成されていないのでしょうか。 idとぱpasswordは何度も確認したんですが。 何が悪いのかさっぱりわかりません。アドバイスいただければと思います。

    • ベストアンサー
    • PHP
  • Service_Twitterの認証エラー

    http://oshiete.nikkeibp.co.jp/qa6325339.html に引き続き質問します。 xampp環境を立ち上げローカルPCでpearを使ってインストールし、 同じソースを入力したのですが、non-objectエラーは同じでした。 http://uenomemo.blog31.fc2.com/blog-category-28.html を参考にして、0.5.1をインストールしたら、 このエラーが出ないかわりに、 エラーをCatchして、Unauthorizedというエラーが出ます。 何度もIDをパスワードを確認しているのですが、 あってます。 どうしたらいいのでしょうか。 pearでインストールの際にwarningが出ていましたので、添付します WARNING: running in safe mode requires that all files created be the same uid as the current script. PHP reports this script is uid: 0, and current user is: Owner downloading Services_Twitter-0.5.1.tgz ... Starting to download Services_Twitter-0.5.1.tgz (38,464 bytes) ..........done: 38,464 bytes WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update WARNING: failed to download pear.php.net/HTTP_Request2 within preferred state "stable", will instead download version 0.5.2, stability "alpha" Did not download optional dependencies: pear/HTTP_OAuth, use --alldeps to download automatically pear/Services_Twitter can optionally use package "pear/HTTP_OAuth" (version >= 0.1.2) install ok: channel://pear.php.net/Services_Twitter-0.5.1

    • ベストアンサー
    • PHP
  • PHPを使用してTWITTERにつぶやきを投稿する簡単な自分用のサイト

    PHPを使用してTWITTERにつぶやきを投稿する簡単な自分用のサイトを作ろうと思い、PEARをインストールしてTwitter.phpを使用して作っていたらエラーが出て困りました。 エラー内容は下記の通りです。 Warning: require_once(Services/Twitter/Connector.php) [function.require-once]: failed to open stream: No such file or directory in /home/USRENAME/www/Services/Twitter.php on line 23 Fatal error: require_once() [function.require]: Failed opening required 'Services/Twitter/Connector.php' (include_path='/home/USERNAME/www/PEAR') in /home/USERNAME/www/Services/Twitter.php on line 23 と表示されます。 使用している環境は「さくらのレンタルサーバー」スタンダード PHPのバージョンはPHP 5.2.12 [標準のPHP] (CGI版) です。 index.iniは include_path = "/home/USERNAME/www/PEAR" と記載しました。 何分PHPもさほど詳しくないのでエラー内容がわかりません。 どのような対応をしたら良いのかわからなくなり、ここに来ました。 何卒ご指導や参考になるサイトを教えてください。

    • ベストアンサー
    • PHP
  • PHPのライブラリPEARを使わせる場合

    レンタルサーバのユーザにPHPのライブラリPEARを使わせる場合、 サーバ側(サーバ管理者)が全てのPEARを用意して、インクルードしてやっておかないといけませんか? CentOS5.6(私がサーバを提供する側) PHP5.3.3 というのも、 php.iniの include_pathが include_path = .:/usr/share/pear:/usr/share/php  になっておりサーバ管理者である私が/usr/share/pearにはまだPEARパッケージを1つも入れていません。 そこでPEARパッケージを使いたいユーザ自身がFTPでphp等アップロードしたディレクトリに 使いたいPEARパッケージを独自で配置し、ユーザ自身が配置したPEARパッケージを読み込んで使う形でもいいのでしょうか? ユーザがどんなパッケージを必要とするか分からないので、こちらがあらかじめ準備してやるなら、 すべてのパッケージを/usr/share/pearにインストールしておいてやらないといけなくなるのでは? と思います。 レンタルサーバなど通常はどうやっているんでしょうか?ユーザ各々にアップさせるものですか?

    • ベストアンサー
    • PHP
  • PEARのパッケージのパスの変更方法

    さくらレンタルサーバで、以下の手順でPEARをインストールしました。 http://www.seo-maniax.com/high-rank/sakura-pear/ 次に以下のコマンドを実行しました。 pear channel-update pear.php.net pear install Net_URL2-2.0.0 pear install HTTP_Request2-0.5.1 pear install HTTP_OAuth-0.2.3 そして、/home/ユーザ名/pear/HTTP/Consumer.phpを使ったプログラムで、以下のエラーが。 Warning: require_once(HTTP/OAuth.php) [function.require-once]: failed to open stream: No such file or directory in /home/ユーザ名/pear/HTTP/OAuth/Consumer.php on line 24 Fatal error: require_once() [function.require]: Failed opening required 'HTTP/OAuth.php' (include_path='.:/home/ユーザ名/pear/PEAR') in /home/ユーザ名/pear/HTTP/OAuth/Consumer.php on line 24 line 24は、require_once 'HTTP/OAuth.php'; となっており、正しいパスは'../OAuth.php'なので、正しくインストールしたいのですが、どうすれば良いのでしょうか?

    • ベストアンサー
    • PHP
  • レンタルサーバーで、PHPでのPEARパッケージ

    利用しているレンタルサーバーでPEARパッケージが使えると書いてありました。 ■heteml 利用できる PEAR を教えてください。 http://heteml.jp/support/faq/383.html これはどういう風に使うのでしょうか? ■PEAR - PHP Extension and Application Repository http://pear.php.net/ 上記サイトから必要なPEARをダウンロードしてきて includeするのとは違うのでしょうか?

    • 締切済み
    • PHP
  • phpのpearが使えない

    いつも参考にさせて頂いています。 pearコマンドが使えなくなってしまいました。シェルでpearと打つと下記エラーが発生します。 【エラー内容】 Warning: require_once(PEAR.php): failed to open stream: No such file or directory in Config.php on line 27 【原因】 おそらく、PEARディレクトリを移動させてしまったからだと思います。 なので、/usr/bin/pearをviで下記のように変更した所、上記エラーが発生しました。 include_pathを/usr/share/php ⇒ /usr/local/php pearを再インストールすれば改善されるでしょうか? できれば再インストールする際の手順なども教えて頂けると嬉しいです。(参考URLでも全然OKです。 それともPEARディレクトリを移動させても問題なく動作させる方法があるでしょうか?どうか宜しくお願いします。

    • ベストアンサー
    • PHP
  • 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
  • twitterのbot作成についての質問です。

    twitterのbot作成についての質問です。 http://pha22.net/twitterbot/1.4/adv_id.phpのサイト様を参考にして、botを作ろうとしています。 サーバーは @pages で、アップロードをしたのですが、「bot.php」にアクセスすると、「Twitterへのpostに成功しました。」という文は表示されずに Warning: require_once(HTTP/OAuth/Consumer.php) [function.require-once]: failed to open stream: No such file or directory in /usr/local/www/htdocs/(ユーザー名)/public_html/twitbot/EasyBotter.php on line 49 Fatal error: require_once() [function.require]: Failed opening required 'HTTP/OAuth/Consumer.php' (include_path='.:/usr/local/lib/php:/usr/local/www/htdocs/(ユーザー名)/public_html/twitbot/PEAR') in /usr/local/www/htdocs/(ユーザー名)/public_html/twitbot/EasyBotter.php on line 49 となってしまいます。同じような質問をされた方がいて回答には、 HTTP/OAuth/Consumer.phpが、include_pathない為エラーになってます。 http://www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php のようにpearコマンドでインストールするか、include出来る場所にファイルを直接置くかする必要がありますよ。 という事が書かれていたのですが、初心者な為、いまいち理解に欠けてしまいました。 詳しく分かりやすいように説明していただきたいです。こちらも出来る限りの事は調べるようにいたしますので、よろしくお願いします。

    • ベストアンサー
    • PHP
  • レンタルサーバーでpear

    こんにちは レンタルサーバー「WADAX」の専用サーバーで pearのFile_Archiveを使いたいのですが、 エラーになります。 pearのサイトより使いたいモジュールのファイルをダウンロード FTPでサーバーに「pear」フォルダを作りファイルをアップ 下記のようにinclude_pathを使っています。 ========= $path = $_SERVER["DOCUMENT_ROOT"]."/pear"; set_include_path(get_include_path() . PATH_SEPARATOR . $path); require_once("Pager/Pager.php"); require_once("File/Archive.php"); ========= 同じようにpearの「Pager」と「File/Archive」をアップしていますが 「Pager」は正常に動き 「File/Archive」はエラーになります。 「File/Archive」は依存ファイルが多いので関連するファイル ■PEAR Package: MIME_Type ■PEAR Package: Mail_Mime (optional) ■PEAR Package: Mail (optional) ■PEAR Package: Cache_Lite 1.5.0 or newer (optional) もpearサイトよりダウンロードしてアップしています。 しかしエラーは相変わらず解消されません。 サーバーへのアップ方法等、どこか違っているのでしょうか? エラー解消はどのようにすればいいかわかる方がいたら 教えていただけないでしょうか? 宜しくお願い致します。

    • 締切済み
    • PHP