【メモ】Redmine REST APIとGuzzleによるチケット作成

redmine-logo@2x.png どこかで何らかの処理をしてその結果をそのままRedmineで報告し、周知したいという場面がありまして、RedmineのRest APIを使ってみました。 こんな感じ。 簡単。 Rest APIを使用する設定やAPIキーの取得方法についてはこちらのサイトを参考にしました。 REST API — Redmine用語解説 Rest APIの仕様に関しては公式ドキュメントを見るのが良いと思います。 Rest api – Redmine

続きを読む

【WordPress】テーマの開発はLocal by FlywheelとGitHubで解決した(追記あり)

local_by_flywheel.jpg メインブログの引っ越しが間近に迫っているんですが、引っ越すに当たってメインブログだけはきちんとテーマを作り込みたいと思っていました。もちろんスクラッチは時間が掛かりすぎるから無理だとしても、スターターテーマと言われる基本的なデザインだけしてあるテーマを元に作りたいと。 ただそうは言っても動作確認がなかなか面倒くさい。Vagrantでサーバ立ち上げて、Wordpress入れて各種設定してDB用意して……ってやれば出来るけど出来ればもっと簡単にやりたい。そう思っていたら「Local by Flywheel」がすげーいいよっていう話を見掛けたので入れてみたらほんとにすげーよかった。 超簡単にローカル環境が構築できるLocalbyFlywheelの使い方 何をやってるかというと、要するにdockerで環境をまるごと用意するって感じです。Virtualbox上にdockerがセットアップされ、その中にPHP、MySQL、Apache、WordPressが用意されていて、サーバを起動するだけで使用出来ます。最初のセットアップには少し時間が掛かりますが、それさえ終わってしまえば、Local by Flywheelの起動に2分ぐらい、そこからサーバの立ち上げに10秒ぐらい。それだけ。WordPressのファイルは、

~/Local Sites/サイト名/app/public
以下に全てあるので自由にカスタマイズ出来ますし、プラグインのインストールやテーマのインストールももちろん出来ます。アプリケーションはWindowsとMac両方に対応していて、どちらで使っても使用感は同じぐらい良かったです。どちらのOSの方にもオススメ。

続きを読む

【メモ】Laravelium/FeedでItemの日付をオブジェクトで渡すとvalidなRSSにならなくなる【#np2020】

w3c_rss.png Laravelで簡単にRSS出力出来るライブラリ「Laravelium/Feed」がものすごく便利なのですが、サンプルに従ってRSSを出力すると実はvalidになら無いことがあります。こういう感じで日付を設定して、出力すると、なぜかRFC2822で出力されずにW3Cの「Feed Validation Service」で上のようなエラーが表示されてしまいます(必要な部分のみ抜粋)。 だいたいのRSSリーダーではこれでも正しく読めるので、問題ないっちゃないんですが、気になる場合には以下の通りに変えると無事通ります(21行目)。 Feed自体の出力日(lastBuildDate)はCarbonオブジェクトで渡すだけで正しく出力される($feed->formatDate()が使われている)ので、どうやらItemだけの問題のよう。

続きを読む

ニコニコ動画紹介ブログ「1日1ニコ」の引っ越しが完了しました。【#np2020】

nico.png MovableTypeからWordPressへの引っ越し第2弾として、備忘録も兼ねたニコニコ動画紹介ブログとして細々と更新してきたブログ「1日1ニコ」をWordPressへ引っ越ししました。アクセス数は1日に数件程度であり仮に障害が起きても影響が軽微であることと、長年運営しているおかげで6,000件弱の記事があることで、本ブログの引っ越し前の試験として適当でした。 1nico | 1日1ニコ 結果から言うと、インポート自体はそれほど時間が掛からずに終わったのですが、インポート時に一部のコードが削除されてしまうという仕様に悩まされました。結局、フィルタリングをカスタマイズすることで回避できたんですが、 【Wordpress】 インポート時に「script」「iframe」などのタグが削除されてしまう【#np2020】 | mutter このブログは生のコードを書いていることもあるし、被害が大きそうだなあ……すっごい不安になりました。

続きを読む

Guzzleを使ってニコニコ動画にログインする【#np2020】

niconico_ku.png ログインが必要なAPIからデータを取ってくるにあたって、ログイン処理からのデータ取得という流れが必要なんですけど、どうも上手く動かなくてしばらく嵌まる。調べた感じではCookieの設定が上手く行っていなくて、ログインに成功しても次のリクエストに引き継がれていない感じ。

続きを読む

【WordPress】alt属性のないimgタグはAPI出力時にエラーになる【#np2020】

WordPress-logotype-standard.pngのサムネイル画像 MovableTypeに負けず劣らずのWordPressの謎仕様に苦しめられている最近ですが、APIで記事データを取得していたときに気付きました。 例えばこんな感じの本文があったとき。

これをAPIで出力しようとするとエラーになります。 15_02.jpg WordPressが内部で何をしているかというと、
  1. 本文にHTMLが含まれている場合、「”」などをエスケープする
  2. imgタグにalt属性が含まれていない場合、「alt=””」を自動的に補完する
  3. 自動的に補完したalt属性が持つ「”」はエスケープしない
  4. エラー
ということで、お前自分で勝手に補完したんだから責任持ってエスケープしろよ何やってんだよバカ!ということなんですが、そんなこと言ってもWordpressのコードを直すわけにもいかないし、仕方がないのでエラーが出てるタグを探して自分で「alt=””」を補いました。解決。 解決したのは良いんだけど、多分このブログの移行を行うときにはそんなのたくさんあると思うんだよね……さすがに、全部をWordPressの管理画面で修正してられないし、インポート前のデータを加工するしかないな。面倒くさいけど。

続きを読む

【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

続きを読む