https://dev.twitter.com/web/tweet-button/web-intent
https://twitter.com/intent/tweet?text=tweet
みたいなページを開けば、指定テキストが入力された状態のページを開ける。
公式ボタンやAPIを使わずにとりあえずシェア機能を付けたい時とかに。
Intentという言葉をよく忘れて毎回ググってる気がするのでメモしておく。
https://dev.twitter.com/web/tweet-button/web-intent
https://twitter.com/intent/tweet?text=tweet
みたいなページを開けば、指定テキストが入力された状態のページを開ける。
公式ボタンやAPIを使わずにとりあえずシェア機能を付けたい時とかに。
Intentという言葉をよく忘れて毎回ググってる気がするのでメモしておく。
頭働いてない状態でいつもどおり、
$ rails new my-app
$ cd my-app
$ powder link
的なことをやったら、タイトルのエラーでpowが起動しなかった。
$ gem update bundler
とか
$ bundle update
もやったけどダメ。
一瞬???てなったけど、rbenvのデフォルトじゃない環境で作業してたことを思い出した。
$ rbenv local 2.2.2
$ touch tmp/restart.txt
で解消。
結論。眠い時は寝よう。
同種のGemはいっぱいあると思うけど、https://github.com/maxwell/screencap を使ってみたら、普通に動いたので良かった。
ブラウザとしてはPhantom.jsを使っているようだ。https://github.com/westoque/phantomjs.rb がdependencyに指定されているので勝手に入る)
path = File.expand_path("./path/to/index.html")
f = Screencap::Fetcher.new("file://#{path}")
screenshot = f.fetch(
output: "./path/to/screenshot.png",
width: 800,
height: 600,
debug: true
)
こんな感じでローカルのファイルのスクリーンショットを簡単に取得できた。
debug: true
は詳細なログを出してくれるので指定しておいた方がうまく行かなかった時の調査に役立つ。
FontAesomeが表示されなくて困ったけど、MacのFont Bookからフォントをシステムにインストールしちゃえばいけた。
http://blog.tnantoka.com/posts/80 で作ったもの。
データサイズが問題になってたんだけど、デスクトップアプリなら数MBでもOKでしょうということで、Electron化してみた。
https://github.com/tnantoka/commits
あまり快適ではない感じだ。素直に何かしらのデータベース使ったほうがいい気がする。
デスクトップアプリ作りたい欲が高まってきたので、Electron に入門した。
初めてのElectron! HTML5でデスクトップアプリを作成しよう – ICS LAB がわかりやすかった。
$ node -v
v0.12.7
$ npm install electron-prebuilt -g
$ electron -v
v0.30.0
これでひとまず環境は整う。
次は、
http://electron.atom.io/docs/v0.29.0/tutorial/quick-start/
のとおりに、
を作成。
$ electron .
したら動いた。
パッケージ化も、
$ npm install electron-packager -g
$ electron-packager . your-app --platform=darwin --arch=x64 --version=0.30.0 --overwrite
$ open your-app-darwin-x64/your-app.app/
で行けた。
これは確かにお手軽だ…。
作りたいものがOAuth認証を利用するアプリなので、GitHubで試して見た。
Electron. oAuth authentication with GitHub がとても参考になった。
ログイン部分のソースはこちら。
https://github.com/tnantoka/GitHubLogin/blob/master/auth.js
ポイントはredirectを監視して、queryにcodeがあったらそれを使ってアクセストークンを取得するところ。
無事に認証できたら、localStorageにtokenを入れてページをreloadするという手抜き実装にしている。
この規模でももう既に破綻の香りがするので、React・Fluxでの実装を勉強しようと思った。
remote.require
などを使ってmain側にやらせる。