【WordPress】メディアが既に登録済みかどうかをAPIで確認する【#np2020】

WordPress-logotype-standard.pngのサムネイル画像 前回、APIを利用してメディアを登録したのですが、同じメディアがいくつも登録されるのはだるいので、追加されているのを確認して追加されていたら登録をせずに画像のIDだけを取得したい。 というわけで、こんな感じで書いてみると……期待通りには動かないんですね、これが。

続きを読む

【WordPress】REST APIを使って投稿する【#np2020】

WordPress-logotype-standard.png WordPressのHowto記事なんていくらでもあると思いますが、多分僕の使い方がニッチで網羅している記事がなかったので備忘録程度にまとめておきます。

やりたいこと

  1. API経由でWordPressに記事を投稿したい
  2. 投稿する記事のアイキャッチ画像を設定したい
  3. 必要に応じてメディアファイルをアップロードしたい
以上3つです。

前提条件

  • PHP 7.2
  • Laravel 5.8
  • Guzzel 6.3.3

続きを読む

LaravelでスクレイピングしてAmazonのおすすめ度を取得【#np2020】

LaravelLogo.pngのサムネイル画像 Amazonで参考にするものと言えばレビューとそれに基づいて表示されるおすすめ度の星の数。商品表示するときにその星の数を取得出来ると良いんですけど、残念ながら現在のAPIでは提供されていません。提供されているのは、レビューとおすすめ度が表示されたページのURLだけです。例えばこんな感じ。 そのまま商品表示に乗せるのには大きすぎるし、出来れば星の数の部分だけ取得してきたい。 というわけで、スクレイピングです。

続きを読む

最近撮影した写真のサムネイル表示に今さらTumblrを利用するわけ

Tumblr 最近撮影してWebで公開した画像や写真をブログ上でサムネイル表示させています。写真の投稿先は基本的にInstagramで、Tumblrはあくまでそこから自動投稿されているに過ぎず、Tumblr自体をWebサービスとして使うということは今はほとんどしていません。昔は熱心に使っていたんですけどね。 そういう意味で言うと、最近の写真とはつまりInstagram上にあるものであって、そこから持ってこれるのが一番スマートなんですけど、最近のメジャーWebサービスは「WebAPIは公開しない」「RSSフィードも配信しない」「情報が見たかったら実際にサイトに行ってね」という傾向が強く、それはプライバシーの保護、セキュリティリスクの回避、自社サービスへの囲い込みが主な理由ですが、情報を自由にとって来れない状態になっているんですよね。もちろんスクレイピングして強引に持ってくることも出来なくはないけど、お互いにリソースがもったいないし。 そんな中でTumblrは、長らく開発が放置されている影響もあって今でもWebAPIが公開されているし、RSSフィードはあるし、多少のポリシーの変化があって利用者が減っていると言う面はありつつも情報ソースとしては今でも便利です。ガラパゴスにもメリットあるじゃんか。 いつまで今のシステムが維持されるかは不明ですが、とりあえず今時点では最も便利に使える写真集積プラットフォームです(プログラマブルな再利用的な意味で)。ただ、同じように環境が整っていて、ガラパゴスだった「Flickr」という写真共有サービスが迷走ののち見事に没落し、消えようとしている今、Tumblrも同じような方向に走るんじゃないかなあと危惧……いや多分近い将来そうなるんでしょうねという諦めを感じてもいます。 そうなったらそうなったで、何か考えれば良いんですけどね。自分だけ使えれば良いんだったら、S3に集めてそこから引っ張ってきたって良いんだしね。ただ今のところはまだ元気に活動中なので、その間だけは仲良くしておこうかなと思っています。

ちなみに

ほぼサービス休止中の「umbls.com」ですが、少しずつ新バージョンの実装を進めてはいます。Laravelになることで以前より開発スピードは上がるとは思うんですが、まだ提供する機能のテストをしているぐらいで、Webサービスとしてのシステム(ログインシステムなど)は全く手つかずなので、復旧出来るのはいつになることやら。それまでTumblrユーザーが残っているかどうか……

続きを読む

Tumblrから画像データを取得してサムネイル表示するアプリをLaravel + BootstrapVueで作ってみました【#np2020】

昨日から引き続いて。 Laravel + BootstrapVueの習作の一環として、Tumblrから画像データを取得してきてサムネイル表示するアプリケーションを作成してみました。このブログのトップにずっとあったやつですね。「umbles.com」というサイトで「Tumblr Thumbnails」として提供していたものとほぼ同じですが、テスト版なので機能面での互換性はありません(デザインのアレンジも出来ません)。

続きを読む

Amazonの商品情報を表示するシステムをLaravel+Bootstrap+Vueで実装しました【#np2020】

LaravelLogo.pngのサムネイル画像 ブログなどで使っているAmazonの商品表示は自作のものを使っていたんですが、それをテストがてら新サーバに移行してみました。こんな感じ。

大きいバージョン

小さいバージョン

特徴

  • 情報の取得をLaravelが、データの表示をVue、装飾をBootstrapがそれぞれ担当
  • Vueを使って遅延表示
  • iframeの大きさに応じて表示内容をレスポンシブに変更する
  • 商品リンクもAmazon Product Advertising APIのものを使う
  • 割引がある場合、その表示に対応
  • APIへのアクセスはCloudFrontでキャッシュ

続きを読む

【メモ】Laravelで簡単なAPIを実装してみる【#np2020】

LaravelLogo.pngのサムネイル画像 Laravelへの機能実装を進めながら泥縄でいろいろ勉強するということをしています。で、ある機能を実装するのにフロントエンドはVueで実装して、データはサーバ側で取得してJSONで渡そうかというようなことを考え、APIを実装してみました。とりあえずサンプルなので使うデータは何でも良かったんですが、あとで使えるようにってことでAmazonの商品情報API(Amazon Product Advertising API)を使うことに。ASINを渡すと商品情報のJSONを返してくれるだけのシンプルなAPIです。 参考にさせて頂いた記事はこちら。 Laravel用AmazonAPIモジュール – Sheltie's Garage

続きを読む

はてなブックマークの情報が取得出来なくなっていた件

20181114_01.png 毎朝自動投稿している、「昨日のブックマークまとめ」が上手く動かなくなっていたので調べてみたら、そもそも自分のはてなブックマークをAPI経由で取得できなくなってました。理由は、Atom APIのサポートが終了したこと。

はてなブックマークAtom APIのサポートを終了します – はてなブックマーク開発ブログ

この度、Atom API のご利用数が少ないこと、Atom APIと同様の機能がREST APIで提供されていることから、2018年10月31日にAtom APIのサポートを終了することとなりました。ご利用の皆様には申し訳ございませんが、REST APIへの移行をお願いいたします。

データ取得部分はPearの「Services_Hatena」を使っていたんですけど、これ内部でAtom API利用してるんですよね。まあそもそもデータ取得用のコードがすごい古いし、「Services_Hatena」も既にメンテナンスされてないし、Atom APIを終わらせるというはてなの判断も妥当だと思うので、特に何にも不満はないです。そのままにしていた自分が悪いので。ていうか、時代は変わったんだなあとしみじみ。 ちなみに一番面倒なのは、認証かなあ。

はてなブックマークAtom APIのサポートを終了します – はてなブックマーク開発ブログ

AtomAPIはWSSE認証とOAuth認証をサポートしていましたが、REST APIはOAuth認証のみをサポートしています。WSSE認証をご利用のかたは、OAuth認証に切り替えていただくようお願いいたします。

WSSE認証が廃止になるので、OAuth認証に切り替えなければならないというね。きちんと実装してもいいんだけど、ブックマークの情報を取得するだけならフィードを取得すれば良いだけだから別に良いかな。 (ただしブログ記事をはてなブックマークに自動投稿する機能は動かないまま。これはそのまま廃止で構わないかな−) 改修についてはちょっと問題も起きたので、また別の記事で。

続きを読む

【メモ】 楽天RMS APIを使ってみるテスト

rms.jpg 仕事の関係で楽天市場関連の作業をしています。 楽天市場には、店舗が自分の出品している商品情報などを取得するAPI(RMS WEB SERVICE)があるのですが、ものがものだけに情報が少なく楽天のドキュメントも最低限しかない(その上、一般ユーザー向けの「楽天ウェブサービス API」と混同しやすい)んですよね。ちゃんと理解してるのは在庫連動ソフトを作ってる会社のエンジニアくらいなのかな。ま、仕方ない。

続きを読む

Google Calendar API v3に対応する(月間イベントを取得して表示)

あるバーのスケジュール表をGoogle Calendarを利用して更新しているのですが、その表示に使用していたプログラムが動かなくなっていました。調べてみたところ、11/17で「Google Calendar API v2」が廃止になり、それを利用していたサービスはすべて「Google Calendar API v3」に移行してねと言うことだったみたいです。

Google Calendar API v2 Developer’s Guide: Protocol – Google Calendar API — Google Developers

This API is a subject to the Deprecation Policy and was shut down on November 17, 2014. Please use APIv3 instead.

なんてこったい。全くしらなんだ。 仕方が無いのでプログラムを見直し、「Google Calendar API v3」でスケジュールを取得するように変更したのですが、今までと手順が少し変わってたのでメモ代わりに何か残しておきます。

続きを読む