2015年1月31日 22:24

ドットインストールの「TwitterAPIでログインするWebサービス」で躓いたポイント

PHP逆引きレシピ 第2版 (PROGRAMMER'S RECiPE)

作りたいWebサービスが決まったので勉強をしています。Twitterでログインできるサービスにしようと思い、ドットインストールのレッスンを見てTwitterAPI用ライブラリ「Codebird-php」を使ってみました。

jublonet/codebird-php ? GitHub
ツイッターでログインするWebサービスを作ろう (全14回) - プログラミングならドットインストール

「Codebird-php」のバージョンが変わっていたりでハマッタところがありました。躓いたところのメモです。

スポンサードリンク

curlを使うと不具合が起こる(場合がある)

PHPのTwitterライブラリ「codebird.php」でログイン認証をしてツイートを投稿する話: がおさんち 技術部屋

上記リンクにて詳しく解説されています。ただ、ドットインストールをベースに勉強している場合、こちらのコードまんまだと上手く行きません。動画同様、公式サイトのテンプレを使うようにして下さい。

\Codebird\Codebird::setConsumerKey(CONSUMER_KEY, CONSUMER_SECRET);
$cb = \Codebird\Codebird::getInstance();
//↓を追加。
$cb->setUseCurl(false);

curlを使うと不具合が起こるという場合は以下を指定するとfile_get_contentsを用いて通信するようになります。

引用元:PHPのTwitterライブラリ「codebird.php」でログイン認証をしてツイートを投稿する話: がおさんち 技術部屋

【curl関連のエラーでみつけた記事】
bearpaw: Codebird-php (2.4.1)でエラーが出てツイートできない
PHPでTwitterのbotを作る方法 ツイートをする/ツイート一覧を取得する(API v1) - [サンプルコード/PHP] ぺんたん info
twitter api をcurlで叩く - kou's memo
Twitter codebirdでエラーがでます - PHP | 教えて!goo


サーバーの時刻設定に注意

認証画面に遷移し、認証が完了した後にエラーが発生しました。調べると、サーバー側の設定日時に大きなズレがあるとエラーを吐くようです。

Vagrant、CentOSの場合、ひとまず以下で時刻設定はできます。

$ sudo date -s "01/29 20:01:05 2015";

信頼できるタイムスタンプがログに残っていることが障害調査の重要な手がかりとなります。 正確な時刻の確保はサーバ管理の根本ですので、時刻同期の設定はOSをインストール後に最優先で行う作業と位置づけられるものです。

引用元:サーバー構築 - Linux/UNIXサーバは立てたらまず時刻同期の設定 - Qiita

私自身、勉強不足で申し訳ないんですが、時刻設定は大事なので設定した方が良いとのこと

CentOSにntpサーバを入れて、日本標準時刻に自動的に合わせるためのメモ - Qiita
CentOSで自動時刻合わせ - Qiita

絶版後記

特にハマッタのはこの2点。後は写経ミスでした。$cbが$cdになってたとか、$sqlのプレースフォルダ名で「:tw_screen_name」とするところの":"忘れてたりそんなんです...。

まだまだですね。見直しします。

  • 【タグ】
プログラミングカテゴリの他の記事はこちら。
PHPカテゴリの他の記事はこちら。

スポンサードリンク

news

新作同人誌! MEMORIE(あまんちゅ!イラスト本)の通販 → メロンブックス

イラスト・漫画など活動報告 → イラスト・漫画仕事および同人活動の記録| 絶版あかみる

雑誌掲載されました

絶版あかみるを登録する

follow us in feedly
  • RSS
  • Twitter(@akamiru_)
  • おしらせ

    カテゴリーはページ最下部、月間アーカイブなどは「サイトマップ」にまとめてあります。

    Kindleセール情報

    Google先生に怒られたっぽいのでしばらく削除します。すみません。

    青年コミック(4社選)の3ページ分(人気順)から情報を取得。