投稿

2月, 2019の投稿を表示しています

Dialogflow から webhook される php を Google API v2 に対応させる

イメージ
Dialogflow から google api v2 に対応しろとのお知らせが表示されるので、webhook される php を Google API v2 に対応させる 命令の流れをおさらい まずは、どういう仕組だったかを忘れていたのでメモ アプリに入って、命令を行うと、Intent にある Action and parameters の値を含む json が Fulfillment に指定した url へポストされるので、応答メッセージを含む json を返す という仕組み API の切り替え google api v2 対応への切り替え(Dialogflow側)は、スイッチを切り替えるだけ api 切り替え後の web 側変更 API を切り替えると、送られてくる json の内容が変わります。また、応答メッセージを埋め込む json の形式も変わります。なので「そのままだと アプリから応答がありません」みたいな形になります api v1 で post される json api v2 で post される json php の場合 $data = file_get_contents("php://input"); // 取得 $jsonArray = json_decode($data, true); // json -> 配列 // v1 action取得 $action = $jsonArray["result"]["action"]; // v2 action取得 $action = $jsonArray["queryResult"]["action"]; な感じに取得位置を変更します 送られてきたアクションに対する応答は、 こちら のような形で speech と displayText で返していたものを fulfillmentText というキーに変更します ※面倒なので v1 の応答に fulfillmentText を追加して対応したらうまく動きませんでした 端的に書くと // api v1 応答 echo json_encode(array( "spe

LGのテレビをWOLで電源オン

イメージ
LGテレビの有線LANへマジックパケットを送信してWoL(Wake on LAN)していたが、初期化したら受け付けなくなった(自分のやった設定を忘れていた)ので、本体側の設定メモ 設定→機器設定→ワンタッチディスプレイ→「Wi-Fi経由でオンにする」 なんで設定の名前が「 Wi-Fi 経由でオンにする」なのかは不明~

DELL Optiplex GX520 (Celeron D モデル) へ CentOS7 をインストール

イメージ
Linux環境を手元に用意する必要があって、廃棄寸前の GX520 Celeron D 336 モデル へ 64bit の CentOS7 をインストールできるのかって話 モデルは GX520シリーズ スモールファクタの最安モデル Celeron D の 2.8GHz なマシン Celeron D 336 の 仕様 によると、インテル64 = はい ということで、かろうじてOKな感じ USBメモリに CentOS7 minimal iso を焼いて、GX520 の bios からブート順序を変更の後、特に問題もなくインストールできました

Centos7 で再起動するとネットワーク設定が利用できなくなる

Centos7 でOS導入後に nmcli で IP や GW を入れ、NICを有効にする→ネットワークが使える その後、OSを再起動すると、ネットワークが接続されない 下記の設定を確認( enp2s0 は nmcli device で表示されるデバイス名なので各環境で違います) #cat /etc/sysconfig/network-scripts/ifcfg- enp2s0 ONBOOT=no となっていたら、ネットワークが自動起動されないので、下記のコマンドで ONBOOT=yes へ変更する # nmcli connection modify enp2s0 connection.autoconnect yes

Python の参照渡しが途切れるパターン

Python が「値渡し」か「参照渡し」かを調べると、オブジェクトなので 全て参照渡し という記事があったり、 オブジェクトの型 によるという記事があったりマチマチですが 配列等のオブジェクトが「参照渡し」で、それ以外のint等の単純な型が「値渡し」みたいです が、渡した先で配列を再構築させたりすると、参照先が変更されて参照が途切れてしまうパターン def test(a): # a = {'key': 'value'} ←これをやると新たに a へオブジェクトが生成されて参照が切れてしまう a.clear() a['key'] = 'value' return d = {'default': 'zero'} print(d) test(d) print(d)

Chrome for Android のホームを任意のブックマークフォルダへ設定

イメージ
Chrome for Android のブックマークが呼び出しにくくなったので、ホームをブックマークに設定する方法 ホームページに chrome-native://bookmarks/folder/0 を入れる Chromeのタブをすべて閉じて、起動し直す ブックマークのルートが表示されるので、表示したいブックマークまで移動し、右上のボタンでタブ一覧を表示させる 表示したいブックマークのURLが表示されるので、これ(末尾の番号がそのフォルダ)をホームページに設定する