kintoneから画像を受け取る
環境
ツールって大事
kintoneに添付した画像ファイルを PHPで表示する - Qiita
kintone REST APIの共通仕様 – cybozu developer network
kintoneからJavaScriptでevent.record
をPOSTすれば画像データが入っているのかと思っていたけれど、どうもevent.record
に含まれているのはfileKeyだけみたい。逆にREST APIでダウンロードする形らしい。
これらの情報を参考に、JavaScriptとPHPを書いたのだが、うまく動いてくれない。おかしいな。サーバーからのRESTのリクエストの投げ方が間違っているのかな。
KintoneのAPIをブラウザからURLで叩いてみても、ヘッダーの認証情報をつけていないので認証エラーになって蹴られて参考にならない。
それでは、とWindowsのCURL.exeで、認証情報をつけてリクエストを投げてみたけれど、今度は戻りが文字化けしてしまい、エラーの内容が確認できない。
会社の先輩に教えてもあったのがこちら。
FireMobileSimulator for Google Chrome™ - Chrome ウェブストア
その結果、認証で蹴られていることがわかった。ちゃんとAPIトークン書いてるし、気をつけてコピペして間違ってないのになぜ……?
探し回って見つけた情報がこれだ。
kintone API のトークンを使った PHP コードの注意点 : logical error
超重要。APIトークンを「保存」しただけでは、APIトークンは有効化されていません。 「アプリを更新」ボタンを押して、初めて有効化されます。
酷いことに、公式のヘルプの手順には、「アプリを更新」を押せとは一言も書いてない。あんまりだ。
やっと認証されました。データもダウンロードできた。
まとめ
APIトークンの有効化
指定したAPIトークンは、アプリで生成されたトークンと異なります。アプリのAPIトークンの設定を確認してください。設定が正しい場合、APIトークンの設定がアプリに反映されていない場合があります。アプリの設定を更新し、APIトークンの設定をアプリに反映します。
というエラーが戻った場合に検討すべきことの一つ。
APIトークンを「保存」して設定画面に戻っただけでは、APIトークンは有効化されていない。
右上の「アプリを更新」ボタンを押して、初めて有効化される。
慌てているとついやってしまいがち。
これはセミナーとか行かないと直感的には失敗してしまいます。設定を変更したら最後に必ず「設定完了」ボタンをクリックして変更を確定させる必要があります
HttpのRequestHeaderを追加できるChrome アプリ
会社のベテランの方に教えてもらったのはFireMobileSimulator for Google Chrome™だったのだけれど、これは携帯電話の画面をシミュレートするのが元々の主旨なので、画面サイズが小さくなっちゃったりする。HttpHeaderを送信するだけならもうちょっといいのがあるのでは……と探してきたのがこちら。
Chromeアプリ(Extensionではなく)になっている。ストアで入手したら、chrome://apps/
で開いて「ARC」をクリック。右クリックから「ショートカットを作成」を選ぶとデスクトップやスタートメニューに登録することもできる。
これがなかなか秀逸で、formデータの送信もできるし、履歴を再利用できるので、同じリクエストを何回も投げ直すことができる。APIの開発に便利。