bit.lyのAPIに引き渡すURLが「invalid URI」にならないようにする

twitterボットを作るのに、必ず通らないといけないのがAPI連携で、URLを掲載するのに、短縮URLも使いたくなります。

最初からずっと使っていたのと、管理画面の見た目もわかりやすいので、bit.lyにアカウントを作って、API経由で短縮URLをもらっています。

PHPでの利用も、比較的簡単なコードで実装できます。Ver. 3のAPIを使った例がここにありました。

http://davidwalsh.name/bitly-api-php

私がハマったのは、URLをAPIに引き渡すときのデータ(短縮前のオリジナルURL文字列)で、サーバ上にあるテキストファイルから読み込んだデータをAPIに送っても、「Invalid URI」というエラーが戻ってきました。URLそのものがちょっと特殊だったので、そのせいかと思ったのですが、ウェブ上での変換はすんなりできたので、どうやらAPIに送っているデータがおかしい、ということになります。

原因は、テキストデータの最後尾についていた改行コードでした。読み込むテキストファイルの中のデータは、タブ区切りで複数の要素を格納してあり、PHPで読み込んだ後に切り分けて配列に入れているのですが、一番最後の要素であるURLに改行コードがついていました。

APIに引き渡すコードの引数の記述にtrim関数を追加して、エラー回避できるようになりました。

テキストファイル側で最後尾に改行コードが入らないようにしてもよいのですが、確実に対応できるのは、おそらく上記の方法だと思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする