初めてクレジットカード決済するようなアプリを作ってみています。 決済には Stripe を使ってるんですが、その使い方はまた今度として、 Webhookをどうやってローカルで受け取るかという話。 UltraHook - Receive webhooks on localhost ↑ これ、めっちゃいいです。 開発環境は Mac で Vagrant を使ってます。 まずは登録。 ネームスペースも登録する。 登録すると api_key がもらえるので、それをこんな感じ。
![Webhookを使ったサービスをローカル環境で開発したい時にめっちゃ便利なこれ](https://cdn-ak-scissors.b.st-hatena.com/image/square/e42e8094d7bb5fe980c3c9ed5ae04ae611667149/height=288;version=1;width=512/https%3A%2F%2Fworkabroad.jp%2Fassets%2Fogp%2Frails-ec58549f80b7073f28673874c1cdfeb26eaf7f613a14d7665d8e9cf5b06b10d9.jpg)
Railsでサインアップやログインを実装する時どうしてますか? だいたいどのアプリ書くときも必要になってくるので、結構つまらない作業だったりする。 個人的には自分でつくるのが好みですが、plataformatec/devise 使ってる人が圧倒的に多い印象。 Deviceていろんな機能がある、けど、結構使わない。 のでもっとシンプルなGemを試してみました。 NoamB/sorcery 今回は、下記の機能を実装します。 サインアップ ログイン( + ログインを記憶する) パスワードリセット ログインに失敗しすぎたらアカウントロック だいたいこんなもんなんだよね。欲しいのは。 あとはSNS認証とかかな。 インストール
Railsでスクレイピングが必要な時は Nokogiri を使っていたけれど、普通のサイトはJavascriptを使っているわけで、Nokogiriだけではスクレイピングが難しいこともある。そんな時にどうしようかと。 Nokogiri 鋸 Protractorなら、実際にユーザーがブラウザーを立ち上げて、ボタンをクリックして、テキストを読んで… みたいなことを再現できるのですごい便利。ほんとはAngular.jsのためのテストフレームワークだけど、スクレイピングにも使える。 Protractor - end to end testing for AngularJS nvmのイントール 手元のMacOSにインストールして使ってみる。 Ruby使っているならお馴染みのrvm(Ruby Version Manager)。 nvmはNode.jsのバージョン管理ツール。 nvmを入手 $ git
テストを書かないようになってしまっていた。 大きなアプリケーションではないし一人で作ってるし… まぁいいか的な。 ただ、コードの量が増えていくにつれやっぱりちょっと辛い。 書き方すっかり忘れたので、RSpec再入門。 環境 Vagrant + CentOS (centos64box) Ruby 2.2.1 Rails 4.1.1 最終的なGemfile(テスト関係だけ) テスト用のDBの設定をお忘れなく。 gem 'pg' group :development, :test do gem 'rspec-rails' gem 'factory_girl_rails' gem 'guard-rspec' gem 'spring-commands-rspec' end group :test do gem 'faker' gem 'capybara' gem 'database_cleaner'
herokuで独自ドメインのルートを使うのは結構めんどくさい。 サイトによって情報がいろいろ違うので、何がベストなのかを探ってみました。 ルートドメインとは、www.workabroad.jpではなくてworkabroad.jpのこと。 ( apex / bare / naked domainなんて呼ばれることもある) IPアドレスはない。 herokuでは各アプリに固定のIPは振り当てられません。 ということはDNS設定でAレコードに値を入力できないということ。 困りますね。 いろいろ見てると、AレコードにこのIP入れたらいけるよ、 というブログも見かけましたが、公式ドキュメントによると推奨されていなく、 アクセスが多い時にはアプリのパフォーマンスに影響しますよ、とも言われている。 The Limitations of DNS A-Records エイリアスを使えと言われても。。 で、公
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 module SnsCount require 'open-uri' require 'nokogiri' def pocket_count(url) api = "http://widgets.getpocket.com/v1/button?v=1&count=horizontal&url=" content = get_content(api + url) return 0 if content.blank? content.xpath("//*[@
WordpressをHerokuで運営すると何かと楽だなぁと思ってやってみた。タダだし。 でも実際はけっこうハマったりもした。書いておかないと確実に忘れる。 2015/06/01 Herokuの新プラン発表で18時間だけ無料になってしまいました。 Herokuが無料でなくなる日 | Workabroad.jp 24時間稼働は$7かかります。 2015/02/20追記 パーマリンクを変更しても、しばらくするとまた元に戻るという現象が起こりました。 mod rewriteの設定をすれば直るようです。 http://blog.mah-lab.com/2013/05/01/wordpress-on-heroku/ 2015/02/02追記 wp-configの設定が足りなかったので修正 最初は自力でやろうかなと思ったけど、途中でハマりだしたので他の人の力を借りようということに。 2015年1月現在
HerokuのダッシュボードからPusherを追加。 リミットはあるけど無料で使える。 設定 APIキーとかを追加。Herokuのプロダクションは何にもしなくても面倒をみてくれるみたい。 Pusher.url とか Pusher.app_id とかは自分のローカル環境とHeroku上のアプリとでは違うものなので注意。 config/environments/development.rb # Real time notification require 'pusher' Pusher.url = "http://7f115110ccdsxxxxxxxxx:[email protected]/apps/100000" Pusher.logger = Rails.logger # Lines below are needed only for development environment. #
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 #lib/ga_api.rb require 'google/api_client' class GaApi KEY_FILE = "#{Rails.root}/certificate/xxxxxxxxxxx.p12" ACCOUNT_EMAIL = "[email protected]" KEY_SECRET = "xxxxxxxxxxx" VIEW_ID = "xxxxxxxxxxx" VERSI
Railsアプリからウェブサイトの登録ユーザー宛に、メールを送信する際に、Gmailを使ったらそっこうでアカウントをロックされたので、別の手段を取ることに。 Gmailは、自分のログインしたことのない場所で、何者かがログインを試みようとすると警告を出してきます。よく海外を移動する身としては、毎回確認されてイラっとすることも。クレジットカード会社も同じようなことをやってますよね。 で、今回はRailsアプリからGmail経由でメール送信しようと思ったんですが、Heroku(ヨーロッパリージョン)に乗っているので、ヨーロッパから大量の不正ログインがあったと判断され、強制的にパスワードのリセットを求められました。 Gmailの親切機能ですが、アプリで使うのは無理だ…ということで他の方法は… 普通にHerokuのadd-onに選択肢がけっこうありますね。 Mandrill あのMailChimpに
先日つけてみたソーシャルボタンですが、やっぱ数字が出るってモチベーションになっていいね。 意外とPocketも多いんだなぁ。 今回もまたRails。 投稿サイトとかでよくある、一時保存機能をやってみた。文章書いていると、何かの拍子で「あ!」てなることが多いから、あるとユーザーに優しい。 フォーム <div class="blog-form"> <%= form_for(@post) do |f| %> <%= f.text_field :tilte %> <%= f.text_area :body %> <!-- for temporal saving --> <div class="create-temp"></div> <%= f.submit "送信する" %> <% end %> </div>
Railsの強い味方 Turbolinks ですが、イベントが発火しないとか、気をつけるところもあります。今回は、種類も多いし、面倒くさそうだなぁと思っていたソーシャルボタンに手をつけてみました。 参考 Turbolinks Compatibility Turbolinksで困ったら、いつもここを見ます。 最近海外で流行りのTwitter,Facebook,Google+1,Analyticsをまとめる非同期スクリプトにはてなを加えてみた 非同期スクリプト。ヘッダ内に使わせてもらいました。 turbolinks対応で「はてブボタン/Twitterボタン/Facebook いいねボタン/Google Analytics」を読み込む[Rails 4] まさにコレなんですが、種類が少ないのと、自分の環境では動かなかった。 試行錯誤 head内で読み込んでいるスクリプトと、page:loadのタイ
ブログポストが複数カテゴリを持てるという場合で、 ある記事と同じカテゴリを持つ記事を探すということをやりたい。 #Postモデル class Post < ActiveRecord::Base has_and_belongs_to_many :categories end #交差テーブル class CategoriesPost < ActiveRecord::Base end #Categoryモデル class Category < ActiveRecord::Base has_and_belongs_to_many :posts end post = Post.first categories = Category.joins(:posts).where("posts.id = ?", post.id).select("categories.id") category_ids = c
ユーザーに画像をアップロードしてもらえるようなウェブサービスをつくる場合、 画像アップロード機能の実装はCarrierwaveでかなり簡単に実現できます。 Carrierwaveの基本的な使い方はこちら。 Rails 超お手軽な画像アップローダー CarrierWave の使い方 | Workabroad.jp ただ、たとえば10枚まで画像をアップできますよ、とした場合、 1つのフォームで10枚画像を添付して「送信」なんてやると、 送信完了までとても時間がかかります。 スマートフォンの画像解像度も昔にくらべたらかなり大きいし。。 ユーザーが送信完了まで待ってくれる気がしない。。。 といった時に助けてくれるGemがcarrierwave_backgrounder。 lardawge/carrierwave_backgrounder · GitHub まぁ倍速にするというか、 画像のアップロー
API使ってどうのこうのという分野に経験が浅いので、頑張ってみた。慣れるといろんなことできて楽しい。HTTPリクエストの投げ方とか、勉強になりました。今回ははてなブックマークでやってみました。 はてなで指定されたURIに、指定されたフォーマットでリクエストを投げる。 ていうと簡単だけど、指定されている状態をどうつくるのか悩んだ。。 認証にはOAuthとWSSEがあって、WSSEは非推奨でセキュリティもよろしくないという話だけど、シンプルなのでWSSE認証ででやりました。 基本はここに載っている。 はてなブックマークAtomAPI WSSE認証についてはここにありますが、 下のようなものをヘッダにつけろということです。 X-WSSE: UsernameToken Username="hatena", PasswordDigest="ZCNaK2jrXr4+zsCaYK/YLUxImZU=",
RSpec + Capybara のセットアップは簡単でいいんですが、javascriptのテストができません。 いざ本当にウェブサイトやウェブアプリのテストしようと思ったらjavascriptのテストは必須。 それを可能にするには意外にも長い道のりがあるので、まとめておきます。 想定する開発環境はこんな感じ。 Vagrant (Virtual box) CentOS 6.4 ここでつまずいたらドットインストールで学習 ローカル開発環境の構築 (全12回) - プログラミングならドットインストール Vagrant入門 (全13回) - プログラミングならドットインストール Rails4 RSpec Capybara テストについてよくわからなければ、このチュートリアルで学習。 Ruby on Rails チュートリアル:実例を使って Rails を学ぼう テスト駆動開発の定義とは、アプリケ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く