開発中のFacebookアプリをFacebookページに埋め込む方法

 

開発中のFacebookアプリをFacebookページに埋め込む方法が分かりにくかったので、忘れないようにメモ。
 

  1. Facebook開発者(https://developers.facebook.com/apps)のページにアクセス
  2.  

  3. サイドバーから埋め込みたいアプリを選択
  4.  

  5. 「Edit Settings」をクリック
  6.  

  7. サイドバーの Related links から「アプリのプロフィールページを見る」をクリック
  8.  

  9. アプリのプロフィールページの左サイドバーから「マイページへ追加」をクリック
  10.  

  11. 「(アプリ名)をFacebookページに追加」のダイアログが出るので、追加したいFacebookページに対応する「Facebookページに追加」ボタンをクリック

 

【参考】

新しいFacebookページにStatic iframe形式でタブを追加する方法 [C!] はてなブックマーク - 新しいFacebookページにStatic iframe形式でタブを追加する方法 [C!]
 

FacebookアプリのSSL認証が2011年10月1日から義務化

Facebookページに追加するiFrameページと、FacebookアプリのSSL認証が2011年10月1日から義務化されるそうです。

SSL認証に対応していない場合、実施以降は表示すらできなくなるとのことです。

Facebookアプリやページの運営者は早急な対応が必要になりそうですね。

現状、httpsに対応していないアプリがほとんどなので、2011/10/01から使えなくなるアプリがたくさん出て来る気がします。
 

参考情報

FacebookページやFacebookアプリのSSL認証が義務化されます | [M] mbdb

FacebookがSSL対応。外部呼び込みファイルをチェックしましょう。絶対パスの記述は http:// でも、SSL対応サーバなら表示されます。SSL非対応サーバは非表示となります。

Developer Roadmap Update: Moving to OAuth 2.0 + HTTPS – Facebook Developers

PHP の array_key_exists は Ruby では Hash#key? に対応する

 

PHP の array_key_exists みたいな処理を Ruby では Hash#key? を使って実現するみたいです。
 

■ PHP

1
2
3
$a = array('first' => 1, 'second' => 2);
var_dump( array_key_exists('first', $a) );
// => true

 

■ Ruby

1
2
3
animals = {:sheep => 1, :cow => 2};
puts animals.key?(:cow);
# => true

 
 
ハッシュ内にキーが存在するかどうか調べるメソッドは、includeの他にも、key, has_key, memberなどがあるみたいです。
 

【参考】

Convert PHP array_key_exists() to Ruby | PHP to Ruby はてなブックマーク - Convert PHP array_key_exists() to Ruby | PHP to Ruby

逆引きRuby – ハッシュ はてなブックマーク - 逆引きRuby - ハッシュ
 

[Ruby] インクリメント(Increment)は”++”ではなく”+=1″

Ruby でのインクリメント(Increment)は”++”ではなく”+=1″と自己代入でするみたいです。

PHP でのインクリメント(Increment)

$i = 0;
$i++;

Ruby でのインクリメント(Increment)

i = 0
i += 1

以上です。

[Linux] 起動時にコマンドやプログラムを自動実行させる方法

CentOSの起動時にコマンドやプログラムを自動実行させる方法を調べたのでメモ。

OS起動時にユーザが独自でプログラムを実行させたい場合には、 /etc/rc.d/rc.local ファイルに起動コマンドを書きます。

/etc/rc.d/rc.local ファイルは、起動プロセスの最後に実行されるシェルスクリプトです。

僕は、起動時に export で認証付きプロキシを通すのと、ntpdate で時刻同期させたかったので以下のようにしました。

■ /etc/rc.d/rc.local(編集前)

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
 
touch /var/lock/subsys/local

■ /etc/rc.d/rc.local(編集後)

#!/bin/sh
 
touch /var/lock/subsys/local
 
# プロキシ認証
export http_proxy=http://[ユーザ名]:[パスワード]@[IPアドレス]:[ポート番号]/
# 時刻同期
ntpdate [IPアドレス]

以上です。

[Eclipse] svn: Working copy locked; try performing ‘cleanup’ クリーンアップができない

Eclipseにて、svn: Working copy locked; try performing ‘cleanup’というようなエラーが出て、コミットできなくて、エラーメッセージ通りにクリーンアップしてみるとクリーンアップができないという状態になりました。

解決方法が以下のサイトに書かれていて助かりました。ありがとうございます。

・参考:svn: Working copy locked; try performing ‘cleanup’ クリーンアップができない – [Eclipse/開発環境 ツール類] ぺんたん info

■ コミット時のエラーメッセージ

選択されたリソースのいくつかがバージョン管理に追加されませんでした。
選択されたリソースのいくつかがコミットされませんでした。
svn: Working copy ‘C:Usersyour_usernameworkspaceprojectxxxUserResign’ locked; try performing ‘cleanup’

■ クリーンアップ時のエラーメッセージ

選択されたリソースのいくつかがクリーンされませんでした。
svn: Error processing command ‘modify-entry’ in ‘C:Usersyour_usernameworkspaceprojectxxxUserResign’
svn: Error modifying entry for ‘config’
svn: ‘config’ is not under version control

UserResign ディレクトリ内で「svn」というワードで検索して、logファイルとlockファイルを削除してからコミットしたらちゃんと出来ました。

以上です。

[MySQL] ERROR 1045 (28000): Access denied for user の解決方法

MySQL で CSV ファイルに書き出しを行おうとしたら、以下のようなエラーが発生しました。

mysql> select * from users into outfile "./users.csv" FIELDS TERMINATED BY ',';
ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)

MySQL のユーザに FILE を扱う権限がないため CSV ファイルへ出力できなかったようです。

MySQL

続きを読む

error while loading shared libraries: /lib/libc.so.6: file too short Kernel panic: Attempted to kill init!

 

VM wareにインストールしたCentOSを起動させたら、以下のメッセージが表示されて起動しませんでした。
 

error while loading shared libraries: /lib/libc.so.6: file too short
Kernel panic: Attempted to kill init!

 

解決方法が下記サイトに書いてありました。
 

chroot: error while loading shared libraries: /lib/libc.so.6: file too short
 

かなり面倒な症状らしいので諦めて、バックアップ取っていたものを使います。
 

以上です。
 

[Rails] コントローラの中で View の画像URLを取得する方法

 

Ruby on Railsにて、コントローラの中で View のントローラの中で、ビューの image_path などを取得したいときは view_context を使えばできるみたいです。
 

■ コントローラの例
 

1
2
3
4
5
6
7
8
#-*- encoding: utf-8 -*-
 
class BookController < ApplicationController
  def show
    view_context.image_path('book.jpg')
      # => "http://localhost:3000/images/book.jpg"
  end
end

 

■ application.rb
 

1
2
3
4
5
6
module MyApp
  class Application < Rails::Application
    config.action_controller.asset_host = "http://localhost:3000"
    ...(略)...
  end
end

 

以上です。
 

【参考】

Rails のコントローラの中で View の画像URLを取得する方法 – それはBlog はてなブックマーク - Rails のコントローラの中で View の画像URLを取得する方法 - それはBlog
 

[Rails] redirect_to でリダイレクトできない原因はURLに半角スペースが入っていたせい

 

Railsのメソッド redirect_to で、Facebook認証後のリダイレクト処理をさせていたのですが、ちゃんと動かなくて困っていました。
 

リダイレクトできなかった原因はなんと、URLに半角スペースが入っていたせいでした…
 

1
2
redirect_to @facebook_cookies.url_for_oauth_code(:permissions => "publish_stream, read_stream")
#redirect_to 'https://graph.facebook.com/oauth/authorize?client_id=125635350871368&redirect_uri=http://localhost:3000/&scope=publish_stream, read_stream'

 

“publish_stream, read_stream” の部分の半角スペースが入っていたせいでリダイレクトできていなかったみたいです。
 

文字列で渡すところをうっかり配列で渡すような書き方にしてしまっていました…
 

正しくは以下のように、スペースを入れないで scope に渡すパーミッションを指定します。
 

1
2
redirect_to @facebook_cookies.url_for_oauth_code(:permissions => "publish_stream,read_stream")
#redirect_to 'https://graph.facebook.com/oauth/authorize?client_id=125635350871368&redirect_uri=http://localhost:3000/&scope=publish_stream,read_stream'

 

ちなみに、Facebook API を使うためのライブラリは koalaを使っています。
 

arsduo/koala – GitHub はてなブックマーク - arsduo/koala - GitHub
 

以上です。