初心者エンジニアが何か書く

〜技術ブログメイン〜

Yahooローカルでratingソートしたい時

f:id:inobo52:20141001211741p:plain

 

RubyでYahooローカルサーチAPIを使うとき
ratingやreview のソートが上手くいかなかった.
リクエストパラメータを以下のように記述するとちゃんと機能した

変更前  sort=review  =>  変更後  sort=-review

 

 

どこで気づいたかというと,ここ

「神戸」の検索結果 - Yahoo!ロコ

Yahoo!ロコで「口コミ順」を選択して検索したら,こんなパラメータが書いてあった.

f:id:inobo52:20141001213740p:plain

ん?sort=-reviewって書いてある.ってことは,Yahooローカルサーチを使うときも,sort=-reviewと記入すれば口コミ順でソートされた値が取れるかも!?

 

って感じで,できた.

 

 

 

 

 

Objective-CでYoutube動画を埋め込む

Youtubeの動画をiPhoneに埋め込むのは簡単.

完成図:GoogleMapの上にYoutube動画を貼り付けた

f:id:inobo52:20140923004353p:plain

おおまかな手順

  1. ドキュメントを読む
  2. CocoaPodsでライブラリをインストール
  3. 短いコードを書く

詳細について紹介する.

 

1.ドキュメントを読む

この記事を最初に読んだが,Cocoapodの情報を誤っていて,あんまり参考にならない.

Using the YouTube Helper Library to embed YouTube videos in your iOS application - YouTube — Google Developers

 

Githubの方がわかりやすいし正しい.

youtube/youtube-ios-player-helper · GitHub

 

2.ライブラリをインストール

pod "youtube-ios-player-helper", "~> 0.1.1"

 Podfileに上記のコードを記入して,pod install コマンドで実行.

*Podについて知らない人は別で調べてね

 

3.コードを書く

・ViewController.hに以下を記述

#import "YTPlayerView.h"

@interface ViewController : UIViewController
<GMSMapViewDelegate,YTPlayerViewDelegate>

・ViewController.mのViewDidLoadに以下を記述

    //_playerView変数は別で宣言している
_playerView = [[YTPlayerView alloc]init];
    _playerView.frame = CGRectMake(0,0,320,155);
    NSDictionary *playerVars = @{
                                 @"playsinline" : @1,
                                 };
    [self.playerView loadWithVideoId:@"M7lc1UVf-VE"playerVars:playerVars];
    _playerView.delegate = self;
    [_playerView playVideo];


こんだけでYoutube動画を埋め込まえる.簡単.

loadWithVideoIdの引数には,再生したい動画のIDを書けばよい.
@"M7Lc1UVf-VE"の部分は好きなように変えて良い.

Google Map SDK for iOS を超簡単に使う[ios7]

GoogleAPIを利用して3つのことをやってみた

iPhone上に地図を生成

・2点間の自動車ルートを生成

・ルート上にアイコンを走らせる

そしたら,これができた.

f:id:inobo52:20140922003654g:plain

 

使用したAPIとライブラリ

Google Map SDK for iOS(地図やアイコン生成SDK

Google Direction API(ルート生成API

・AFNetworking 2.2(通信用ライブラリ)

 コードはこれだけ.汚いのは未熟だから.

 

overview_polylineはこの記事が超参考になった.これがなかったら実装できなかった.


Directions API | iOS Guy

Google Map SDK for iOS を初めて使う

手順を紹介

1.Googleディベロッパーのサイトに行く
https://console.developers.google.com/project

 

2.プロジェクトを作成

f:id:inobo52:20140919221928p:plain

3.日本語にする(初めは英語かもなので)

f:id:inobo52:20140919221940p:plain

 

4.GoogleMapSDK for iOSAPIを有効化にしにいく

f:id:inobo52:20140919221954p:plain

 

5.検索して有効化をクリック

 

f:id:inobo52:20140919222007p:plain

 

6.GoogleMapSDK for iOSを有効化

f:id:inobo52:20140919222018p:plain

 

7.APIキーを作成する

f:id:inobo52:20140919222051p:plain

 

8.作成するキーはiOSにする

f:id:inobo52:20140919222056p:plain

 

9.アプリのバンドルIDを入力

f:id:inobo52:20140919222103p:plain

 

10.iOSAPIキーが完成!(あとで利用する)

f:id:inobo52:20140919222114p:plain

 

11.GoogleMap.frameworkを以下のサイトでダウンロード

Google Maps SDK for iOS — Google Developers

 

f:id:inobo52:20140919222126p:plain

 

12.後は以下の図の手順@1〜@8まで行えば完成

f:id:inobo52:20140919222203p:plain

 

@手順4のResourcesはココにある

f:id:inobo52:20140919222128p:plain

 

@手順5・6はこれを参照に.

f:id:inobo52:20140919222133p:plain

 

@手順7はこれを参照に.

f:id:inobo52:20140919222141p:plain

 

@手順7.add -ObjCはこのように行う.

f:id:inobo52:20140919222148p:plain

 

@手順8も終えて,下記サイトのソースコードをコピペすれば完成!

Google Maps SDK for iOS — Google Developers

 

実行結果.

f:id:inobo52:20140919222200p:plain

 

 

 

RailsでWebAPIを作る[ JSONP ]

 

RailsでWebAPIを超簡単に作った - 初心者だけど 何か書く

 

[前回の続き]

前回はAmazonWebService上にRailsの環境設定をした所までだった.

今回はRailsで実装したコードと参照したURLを紹介.

 

参照した良記事

Rails format.anyのContent-Typeを指定する - 130単位

 

 

開発環境

  • Rails version: 4.0
  • Server: CentOS (FreeTrial版)
  • Ruby version: 2.0
  • 使用したライブラリ

Rails上で実行したコマンド

 

rails g controller event list

コントローラーファイルeventとアクションlistを生成

これで,http://(Amazon指定のURL)/event/listでページにアクセス可能.

このURLにアクセスすると,JSONP がレスポンスされるようにする.

 

生成したコントローラーファイル(event_controller.rb)を実装

 

重要なのは render_json関数の中の2行だけ.この二つを指定するとJSONPになるみたい 

response.headers['Content-Type'] = 'application/javascript; charset=utf-8'
format.json {  render :json => json_data,callback: callback_method}


render_json関数全体

 
  def render_json(json_data)
    response.headers['Content-Type'] = 'application/javascript; charset=utf-8'
    callback_method = params[:callback]
    respond_to do |format|
      format.html
      format.json {  render :json => json_data,callback: callback_method}
    end
  end


コード全体

 

[ 追記 ]

重要なことを書き忘れていた.このコードを /app/controller/appilcation_controller.rbに記述しないと,クロスサイトスクリプティングエラーになっちゃう.

 

class ApplicationController < ActionController::Base
  # JSONPの実装に必要なコード
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception
  after_filter :set_access_control_headers

 def set_access_control_headers
  headers['Access-Control-Allow-Origin'] = '*'
  headers['Access-Control-Request-Method'] = '*' end

 

f:id:inobo52:20140913170406p:plain

Dribbble - Main Page of Rubee by Ben Lee

EC2にRails環境を設置する

JSONPで利用できるWebAPIをRailsで作った.

JSONじゃなくてJSONPです.

JavaScriptで他のドメインからデータを取ってこれるのがJSONPです.

JSONとJSONPの違い - あと味

 

サーバーはAmazonWebServiceのEC2を利用しました.

http://liginc.co.jp/web/programming/server/39969

一個前のVersionのAWSの説明だけど分かりやすいです.これでログインはできるはず.

 

手順:

1.AWSRailsを用意する.

いろいろ遠回りしたけど,これが簡単みたい.

rails new <app> or rails -h craps out with cannot load such file -- io/console - Stack Overflow

このページの最後の解答を参照して,以下のコマンドを実行

(こっちを参照するのも良さそうです.)

Amazon LinuxにRubyの実行環境を構築してみる | Developers.IO

                                         

sudo yum update

wget https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer

source /home/ec2-user/.rvm/scripts/rvm

rvm requirements

rvm install ruby

rvm use ruby --default

rvm rubygems current

gem install rails
# ここの最後らへんで少しエラーが出た.
# -> Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
# だけど,そんなに大きな問題じゃない.sqlite3を自分でインストールしてという記述があっただけ
# なので,sqlite3をgemでインストール.(何故かバージョンは指定されてた)
gem install sqlite3 --version 1.3.9

 

rails new testApp 
cd testApp
rails g controller event index show
# ここでJavaScriptRunTimeErrorが発動!コントロールファイル生成ができない!

ruby on rails 3.1 - ExecJS and could not find a JavaScript runtime - Stack Overflow

# 上記のURLを参照してなんとかなった.Gemfileに2行追加して bundle コメンド実行でOK!
gem 'execjs'

gem 'therubyracer'
# 後は,好きなようにコントローラーファイルを作って,
# 自分のブラウザからAWSのサイトにアクセスできるかテストしてみる
# testAppディレクトリの中でWebRick発動!

rails s

# んで,自分のブラウザのURLに「http://(AmazonサーバーURL):3000/」入れてアクセス!
# 以上が環境準備

# 今日はここまで,次回Railsの中にAPIを簡単に実装する 

 

 

f:id:inobo52:20140910233855p:plain

そのうちGrapeでWebAPIを作る予定.

 

 

 

 

 

 

 

JavaScriptでDribbbleのAPIを超簡単に使ってみた

f:id:inobo52:20140909161612p:plain

今日はおしゃれな画像を貼ってみた.これDribbbleで手に入るんです.

Dribbble - Show and tell for designers

今日はこのDribbbleさんのAPIを超簡単に使ってみた.以下手順.

 

手順

  1. .APIで何ができるのか調べる

    https://dribbble.com/api


    凄腕デザイナーが作った作品一覧の画像データや著者情報などが取れそう.
    作品IDで単一作品を取得するか / リストで作品一覧を取得するか できそう.
    queryで検索するAPIは用意されていないみたい
    => Rubyスクレイピングすればできる?
    JSONP対応 してるので, JavaScriptAPIを利用できる

  2. APIの使い道を思い浮かべる
    使い道がないかな〜.中にはWebAPIをもとにスマホ向けサイトを作ってる人もいる.
    そういえば,はてぶの記事のヘッダーに画像を載せる人がいる.
    その画像をてきとーにかっこいいのを選んでくれたらいいよね.
    というわけで,てきとーに画像選んでくれるのを作った.

  3. 超簡単にコードを書く

HTMLファイルにコピペしても動く.