Twitter API を使ったお仕事を卒業しようかと思います。

Twitter様、Facebook様におかれましては、御社ご提供のAPIを利用したWebキャンペーンのシステム開発などで大変お世話になりました。
ぼくの周辺には、APIを利用したシステム開発を好んでやる人がいなかったため、ありがたくお仕事として頂戴しておりました。

時世の流れが、キャンペーンなどにSNSを利用する機会が少なくなったため、ぼくへのお仕事発注の数も少なくなっておりましたが、ありがたいことに先月に2件ほどのお仕事をいただいたので、久方ぶりにAPIをこねくりまわしてゴニョゴニョやっておったのですが。

残念ながら2案件ともトラブルに見舞われました……。

その1:画像付きツイートを取得しても、Twitter APIから返ってくるJSONに画像情報が入っていない場合がある

理由はわかりません。条件もわかりません。

「画像つきでツイートしたのに、管理画面に表示されませんよ!!」
今まではなかったことです。もしかしたら気づいていなかっただけかもしれません。たまたま営業さんがそのキャンペーンのテストで画像付きのツイートをしたのに、そのキャンペーンの管理ページで画像が表示されないのです。
公式ドキュメントによると、画像つきのツイートの場合、mediaとかextended_entitiesとかいうパラメータがついてくるはずなのに、そのデータが取得できないのです。
もちろんその営業さんがいうとおり、TwitterのWebページを見ると、ちゃんと画像付きでツイートされています。

謎です。

APIがちゃんとしたJSONを返してくれない以上、ぼくもそれ以上何もできないのですが、今回は例外的にアレとかソレとかゴニョゴニョして、どうにかこうにか画像を取得することはできましたが、たぶんルール違反なのでここでは説明しません。

その2:ハッシュタグで検索した結果を取得するにも、検索結果に含まれないツイートが存在する

理由はわかりません。条件もわかりません。

ぼくのアカウントでログインしたTwitterのページでハッシュタグ検索した結果と、担当ディレクターさんのアカウントでログインした場合の検索結果が違うんですよね。
で、クライアントさんのアカウントでログインした場合の検索結果と、APIが返す検索結果が異なると、「バグです」ってなるわけです。
APIから取得できる検索結果は、Twitterのウィジェットと同じもので、クライアントさんが検索した結果とは違いますよ!って言っても納得してもらえる訳がない。

てなわけで、Twitter API を使った案件は、もうなんか無理なんじゃないかと。
てな感じの近況報告でした。

スポンサードリンク

中古スマホを買う時は、必ず事前にSIMロックフリーか確認すべし。

昨年後半、ウチの奥さんはソフトバンクから FREETEL の乗り換えた。
もちろん、毎月の携帯代金を節約するため。

ボクはもう秋頃から FREETEL ユーザーだったし、同じくソフトバンクから FREETEL の乗り換えたくちなので、先輩として、奥さんの乗り換えの付き合った。
まずは転出願い。
職場近くのソフトバンクショップへ立ち寄り、奥さんが持ってる使用している iPhone を店員に見せ、FREETEL に乗り換えるから転出させてくれ、あわせてSIMロック解除も頼む、と申し出た。

店員「この iPhone。SIMロック解除できないですよ。いつごろ買われました??」
ボク「……、はい??」
店員「SIMロック解除できるのは、iPhone6s 以降なんですが……。」
ボク「これ iPhone6s plusでしょ?」
店員「いやぁ……、いつごろ買われました??」
奥さん「ちょうど2年前くらいで」
店員「iPhone6 plusではないでしょうか……。」

(;・∀・)

SIMロック非対応の機種でした。
ひとまずこの日は転出を諦め、どうやってSIMロックフリーのスマホを手に入れるか問題の解決を見つけることになりました。
自分のことじゃないのでかなり放ったらかしにしてましたが、ウチの奥さんは、ソフマップで中古のiPhone6s plusを買ってきました。

それから無事、夫婦共々 格安SIM生活が始まったのです。
ボクにおいては、ほとんど音声通話はしないし、屋外で動画鑑賞する趣味もなかったので、月々2,000円を超えることは無いし、奥さんは仕事柄音声の電話を頻繁にすることはあるけど、それでも3,000〜5,000円という格安生活を送ることができていました。

つい先週までは……。

ゴールデンウィークに、小さな、とても小さな問題が発生したのです。
続きを読む 中古スマホを買う時は、必ず事前にSIMロックフリーか確認すべし。

OSX(El Capitan)で、MAMPのPHPをコマンドラインで実行するのが面倒なので、シンボリックリンクで便利に繋げてみた。

絶賛MAMP PROユーザーです。(たった59USDで劇的に便利になるのに意外と周りの人が使ってない……)

で、最近のPHPでの開発となると、コマンドラインでPHPを叩いてテンプレートを作成する!みたいな便利機能が多いです。
で、絶賛MAMP PROユーザーなので(しつこいw)、OSXのコマンドラインから叩くPHPと、実際にブラウザ経由で走るPHPのバージョンが違ったり、DBに接続する方法が違ったりと面倒なことに直面します。

今までは、

みたいに長々とMAMPのPHPのフルパスを打ってた(なぜ!?)んだけど、いい加減ちゃんとやれよ!と怒られそう(誰に?)なので簡便化してみました、というご報告。

まず、Googleさんに聞いてみたら、それらしい記事をご紹介いただいたので、そのままやってみたら、Operation not permittedって怒られる。
なんで?とよくよく見てみたら、その記事の冒頭にちゃんと「怒られた方はこちら」ってちゃんと書いてた。

ようするにEl Capitanの場合、Rootlessというセキュリティ機能が追加されて、/usr/binへの変更ができないんだそうです。

先の記事だと「その機能を無効にしちゃおうぜ!」って方法なんだけど、さすがにそれはヤダ。

というわけで、自分のユーザーディレクトリに各MAMP PHPのバージョンのシンボリックを配置しちゃおうぜ!ってのが本題です。
(前振りが長くて申し訳ありませんでした)

続きを読む OSX(El Capitan)で、MAMPのPHPをコマンドラインで実行するのが面倒なので、シンボリックリンクで便利に繋げてみた。

Tessel2が届いたので、叫んだらスマホに通知するような簡単なIoT実験をやってみた。

随分前から気になっていたIoT。やらねばやらねばと思っていたけどようやく着手できました。

2016年3月後半くらいに発売されたTessel2
まだ日本国内で触ってみた人は少ないみたい。

スタートガイドを見ながらやれば、なんの障壁もなくセットアップ完了。
Lチカみたいな軽い通過儀礼もなんなくこなし、あとは何しよっかなぁ〜とか思ってたら、「Webサービス同士を連携できる「IFTTT」と自作IoTデバイスを繋いで生活を便利にしてみた」という記事を見て、なるほどIFTTT経由でスマホに繋げばいいのか、と。

今回購入したのは、Tessel2本体とAMBIENTモジュール(環境センサー)なので、「わぁ!」って叫んだらIFTTT経由でスマホに通知する、みたいな。

IFTTTの設定については前述の参考記事に準じて、あとは下記のコードにて。

コードをTessel2にぶっこんだら、「わぁ!」って叫んでスマホに通知。

IMG_0013

何事も仕事に絡まない実験は楽しいw

WordPressの固定ページで、WP_Queryで記事を取得するもページネーション(the_posts_pagination)がうまく動作しない場合の解決方法。

ちょいと調べてみたけど、結構その対応手段がネットに公開されていなかったので、ソース調べてみた。

get_the_posts_pagination() 内で、$GLOBALS['wp_query']->max_num_pages が1以上じゃないと処理をしないのに、固定ページ内で WP_Query を回しても $GLOBALS['wp_query']->max_num_pages には値が入っていないのが原因。

なので、自分でぶっ込んでやれば良いみたい。

こんな感じ。(2016年1月28日現在。WordPressのバージョンは4.4.1)