作成者別アーカイブ: admin

puppeteerのインストール時にパーミッションで怒られた

puppeteerをインストールしようとしたのだけれど
パーミッションがないよ!みたいに怒られた

フルで権限を与えてもダメだったけど
オプションを付けたこのコマンドで
サイドチャレンジしたら成功した

ちなみにpuppeteerの読み方は
ググるとパペッティアらしい

意味は操り人形。

一応、Googleの人がしゃべってる動画で確認したら
「パペッティーァ」みたいな感じだったw

Cannot find module ‘puppeteer’

puppeteerを試してみようと思ったんだけど
実行しようとしたらいきなり
Cannot find module ‘puppeteer’
って怒られてしまい、、、

NODE_PATH が空だったので
値を設定してあげたら動いたっぽいから
恐らくそれが原因かな~

これで解決なり!

node.jsのバージョンが古い

Centos7系を使ってたんだけど
なにも考えずにyumでnodeをインストールすると
バージョンが6だったりする

古いとなにかと不便(asyncとかが使えない)ので
バージョンアップしようと思ったらnvmという
node.jsのバージョンを管理できるような便利なものが
あるらしいのでその内容をメモメモ

まずはnvmのクローンを作成

一応nvmのバージョン確認

.bash_profileに追記

いざインストール

無事に最新の安定板のインストール完了

複数バージョンを入れて、切り替えることも可能らしいけど
今回は特に必要がないのでスルー

Eclipse4.7以上だとGlassFish Toolsのインストールで失敗した

Eclipseが重すぎて、よくわからないので
最新のEclipseを使おうと思ったら
つまづいたのでメモメモ

今回落としたのはこちら。
ネーミングの法則?が急に変わったw
なんて読むんだろう??
Eclipse 2018-09 R Packages

こんな感じで、いつもの通り
GlassFish Toolsをインストールしようとしたら
ライセンスがどうのこうので怒られてしまったよ。。。

[Window] > [Preferences]
をクリックしPreferences画面の
[Server] > [Runtime Environment]
[Add…] をクリック

New Server Runtime Environment画面の
[Oracle] > [GlassFish tools]をクリック

そこで
[Help] > [Install New Software…] をクリックし
Work with に
http://download.eclipse.org/glassfish-tools/1.0.0/repository/
こちらを入力してNext で、進んでいって
GlassFish tools にチェック入れてさらに進んでくと
再起動になって、そこから先は通常の手順でできるようになった

よかったよかった

dockerコンテナで systemctlコマンドを実行したい

dockerコンテナでCentos7の環境作って

例えばこんなコマンド

systemclt start mysqld.servise
などのような、「systemclt」を実行しようとすると
「Failed to get D-Bus connection: Operation not permitted」
みたいなメッセージで怒られる。
パーミッションがないのか??

調べてみたところ「–privileged」オプションをつけて
コンテナを立ち上げたあとに docker exec で入れば実行できるらしいのだけど
僕の環境だと、下記コマンド実行するとloginを求められて、
よくわからないことになった。。。

なので、SELinuxを無効にする方法を試してみたら
うまくいったので、今回はこちらを採用したよ

SELinux の状態確認

enforcing ・・・ 有効、アクセス制限あり
permissive ・・・ 有効、アクセス制限なし
disabled ・・・ 無効

無効にするには
/etc/selinux/config
上記ファイルの
SELINUX=enforcing

SELINUX=disabled
に変更

無効にした後に、下記コマンドを実行したら解決したよー

WebP対応

WebPに変換するコマンド

■cwebp
・インストール
yum install libwebp-tools

通常変換
cwebp sample.jpg -o sample.webp

可逆圧縮
cwebp -lossless sample.jpg -o sample.webp

圧縮率指定(デフォルトは75?)
cwebp -q 85 sample.jpg -o sample.webp

■ImageMagick
・使えるか確認
convert -list format | grep WebP

↓こんな感じで返ってきたらOK
WEBP* WEBP rw- WebP Image Format (libwebp 0.4.3 [0203])

使えなかったら、アンインストールして新しいバージョンをインストール

・インストール
yum install epel-release
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6.rpm

yum install –enablerepo=remi ImageMagick7 ImageMagick7-devel

・再度使えるか確認
convert rose: rose.webp
identify rose.webp

↓こんな感じで返ってきたらOK
rose.webp WEBP 70×46 70×46+0+0 8-bit sRGB 906B 0.000u 0:00.000

・可逆圧縮で圧縮率を指定
convert image.jpg -quality 85 -define webp:lossless=true image.webp

Apache2でやったら、
Content-Type: audio/unknown
になった、、、

とりあえず、これを設定したら認識してくれた。

AddType image/webp .webp

・参考URL
https://github.com/vincentorback/WebP-images-with-htaccess

Facebookで無期限のPage Access Tokenを取得する

tokenの期限が2か月とかだと
使いづらいので、やっぱり無期限がよい!

簡単なのは、FacebookアプリのApp ID と App Secret を | でつないだものを
App Access Token として使用すること

でも、これだとルート制限に引っかかることがあった。。。まぁしょうがないけど

こちらを参考に試してみる
https://gist.github.com/xl1/fe779a817a9d4938193d

・ユーザーアクセストークンを取得
いろいろ方法はあるけど、とりあえず簡単そうなやつをチョイス
↓こちらにアクセス
https://developers.facebook.com/tools/explorer/?method=GET&path=me%2Faccounts
右上のプルダウンで該当のアプリを選択して、
[トークンを取得]から[ユーザーアクセストークンを取得]をクリックすると
アクセストークンのところに、ユーザーアクセストークンが表示される。

こちらのトークンの有効期限は1時間

・次に長い期限のユーザーアクセストークンを取得する
先ほど取得した短いトークンとapp_id、app_secretをセットして下記URLをたたく
https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={app_id}&client_secret={app_secret}&fb_exchange_token={token}

app_idやapp_secretは、下記URLから該当のアプリを開いて
[設定] > [ベーシック]から確認できる
https://developers.facebook.com/

・最後に無期限のページアクセストークンの取得
再びこいつにアクセスして、アクセストークンに長いユーザーアクセストークンをセットして
[送信]をクリック!!
https://developers.facebook.com/tools/explorer/?method=GET&path=me%2Faccounts

そうすると無事に無期限のアクセストークンの取得完了!!

※ページを作成していないと、返ってくる値が空なので
 ↓こちらからなんでもよいので作成しておく
 https://www.facebook.com/pages/create.php

最後にちゃんとできているかを
アクセストークンデバッガーで確認!
https://developers.facebook.com/tools/debug/accesstoken/

有効期限が「受け取らない」になってたら
たぶん大丈夫でしょう!!

Google Apps Scriptのバージョン管理

Google Apps Scriptは、なかなかいいんだけど
バージョン管理があんまりうまくできなくて

なので、ローカルに落として
Gitで管理する手順をメモメモ

まずは、node-google-apps-script をインストール!

Google Developer Console のプロジェクトで Drive API を有効にし、
OAuth client ID と secret(json)を取得

下記のコマンドを実行して、返ってきたURLにブラウザでアクセス

ファイルを落としたいフォルダに移動して
下記のコマンドを実行!

キーには、ScriptのファイルID、またはスクリプト IDを設定

以上!

gitで競合が起きたとき

とりあえずdiffで差分を確認してみる

その後、checkoutコマンド実行!

そしてpull

競合こわいっす、、、

facebookのアクセストークン取得

■アプリの認証を行う

ブラウザで上記URLにアクセスして、リダイレクトされたURLの
パラメータにセットされてるcodeの値をメモメモ

■アクセストークンの取得

これをブラウザでアクセスすると
access_tokenを取得できる。ただ有効期限が2時間

下記URLより2か月に延長できる
アクセストークンデバッガー
https://developers.facebook.com/tools/debug/accesstoken/