Facebookのウォールにアプリから投稿する方法

先日はFacebookの情報を取得する方法を2回に分けて書きました。

2回の内容で、Facebookの情報にアクセスすることは出来るようになったと思いますので、今回はFacebookのウォールに投稿する方法を書きたいと思います。

参考にしたページは「Facebookアプリ開発に挑戦(その11・Graph APIでウォールに投稿)」で、書いてある内容のとおりです。ほぼ、書いてある内容で作成できました。

2回のサンプルで使用したscopeではユーザ情報にアクセスできるだけで、ウォールに投稿する権限がありませんので、第1回の3-3.ブラウザから認証ページにアクセスのURLにあるscopeにpublish_streamを追加します。

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream,publish_stream

続きを読む

Postfix + Postfix Admin + MySQLでメールを管理する

メールアカウントの管理はかなり大変です。これを動的に管理するようにするには、やはりデータベースを使う必要があると思っていろいろ調べたところ、Postfix + Postfix Admin + MySQLと言う解決策があるようです。

メールアカウントをMySQLで管理し、それをGUIで操作するのがPostfix Adminとなります。SMTPはPostfix(参考:SendmailからPostfixへの変更、Postfixでメール受信時にプログラム起動)。Webメールなどをユーザに提供するには、この組み合わせはおすすめです。

参考にしたのは「Postfix+MySQL+Postfix AdminによるバーチャルSMTPサーバの構築(CentOS4.x編)」で、ほぼここに書かれているとおりで導入できました。

続きを読む

Facebookのアカウントを利用してユーザ登録、ログインページを作成する(OAuth認証)(第2回)

第1回で書いた方法の場合(参考:Facebookのアカウントを利用してユーザ登録、ログインページを作成する(OAuth認証)(第1回))、ユーザの名前は英語名しか取得できません。scopeを変更することで日本語名を取得できるものだと思っていましたが、色々試してみても取得できませんでした。そこで見つけたのがFQL(Facebook Query Language)です。データベースを扱うSQL(Structured Query Language)のFacebook版です。

認証プログラムのことを書いていますので、SQLはご存知だと思いますのでFQLはすぐに理解できると思います。ワイルドカードが使えなかったり、幾つか制限はあるようですが、テーブル構成なども一覧でありますので難しくありません。

FQLのページにユーザ名を取得する例が書かれています。

SELECT name FROM user WHERE uid = me()

続きを読む

Facebookのアカウントを利用してユーザ登録、ログインページを作成する(OAuth認証)(第1回)

日本でFacebookも普及し始めたような気がしますので、そろそろポイ探買いログFacebookでユーザ登録、ログインできるようにしようかと考えました。OAuthで認証できると思いますので、「Facebook OAuth」で検索します。すぐに画像つきのページがヒットしますので、それほど大変じゃないのかなと感じました。実際に作成するまでの流れを書いてみたいと思います。

1.Facebookでアプリを作成
1-1.Create an AppでFacebookのアプリを作成
Create an Appをクリックすると、下記の画面が表示されます。

Facebook Create an App

注意点としてはサイトURLには公開するドメインを入力して下さい。サブドメインで運用する場合はサブドメインを入力します。認証ページのURLにredirect_uriという引数が出てきますが、そちらのドメインと登録したドメインが違うとエラーメッセージが表示されてしまいます。ここで間違った情報を登録しても修正可能ですので、検証環境で検証してからということでしたら、検証時のドメインを入力して下さい。

続きを読む

Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist

10年近く前にWebシステムを構築する時にデータベースMySQLにするかPostgreSQLにするか迷ったことがあります。当初の情報ではMySQLは高速、PostgreSQLは信頼性ということで、信頼性のあるシステムを構築する予定だったのでPostgreSQLを選択しました。

最近ではMySQLもPostgreSQLもそれほど変わらないのではないかと思い、弊社のデータベースはほぼMySQLにしています。PostgreSQLの問題は、更新が多いシステムではVACUUM処理が必要で、この処理に時間がかかるため運用に影響が出てきます。また、MySQLもバージョンアップでトランザクション処理があったり、マスター・スレーブ等負荷分散の設定もできるようになったため、MySQLでも信頼性のあるシステムは構築できるようになっています。

 

MySQLのインストールであまり困った事は無いのですが、今回MySQLをインストールし、/etc/init.d/mysql startと起動したところ下記のエラーがでました。

Starting MySQL.. ERROR! Manager of pid-file quit without updating file.

MySQLのエラーログをチェックしたところ、下記のメッセージが表示されています。

[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

続きを読む

pear install Mail_MimeでmimeDecode.phpがインストールされない

空メールを送ってデータベースにそのメールを保存し、ユーザに登録URLを送るというシステムを作ろうと考えています(参考:SendmailからPostfixへの変更、Postfixでメール受信時にプログラム起動)。いろいろネットの情報を見ると、mimeDecode.phpを使うということが書かれていて、mimeDecode.phpを使う場合は、まずはインストールしましょうと書かれています。
下記のコマンドでインストール出来ると書かれていますので、さっそく実行しました。

# pear install Mail_Mime

特に無反応でした。インストールされている感じもありません。which pearで調べると、ちゃんとパスは通っているのですが一点問題がありそうでした。
PHPはtar.gzからインストールしているので、/usr/local/bin/phpになっています。which pearで調べたところ、/usr/bin/pearになっていたので、旧バージョンのpearを使っていることになっていました。そこで/usr/bin/pearを削除し、シンボリックリンクを張ります。

# rm /usr/bin/pear
# ln -s /usr/local/bin/pear /usr/bin/pear

続きを読む

Webシステムの開発環境はVMwareかAmazon EC2か

VMware今まで新しくWebシステムを開発する場合はVMwareをインストールし、OSをインストール。ある程度のカスタマイズをしたところでスナップショットをとっておきました。このスナップショットを別のディレクトリにコピーしておけば、新しくWebシステムを構築する時に開発環境をすぐに整えることができます。

最近ではAmazon EC2(クラウド)で同じような仕組みが用意(Amazon EC2も仮想サーバなので根本的にVMwareと同じだと思います)しているため、開発環境をAmazon EC2で行うかVMwareで行うか迷うところです。

続きを読む

SendmailからPostfixへの変更、Postfixでメール受信時にプログラム起動

メール受信時にプログラムを起動しようと思い、いろいろ調べたところSendmailよりもPostfixの方が情報が多かったため、SendmailからPostfixに変更しました。いくつか設定に関する注意点がありましたので書きたいと思います。

◆MTAの変更
まず、SendmailからPostfixに変更するのにPostfixをインストールすれば終わりだと思っていましたが、明示的にMTAを変更する必要がありました。下記のコマンドでMTAを変更します。

# update-alternatives --config mta

画面に下記のメッセージが表示されますので、変更したいMTAの番号を入力します。今回は2を入力することになります。

There are 2 programs which provide 'mta'.

Selection Command
-----------------------------------------------
* 1 /usr/sbin/sendmail.sendmail
+ 2 /usr/sbin/sendmail.postfix

Enter to keep the current selection[+], or type selection number: 2

これでデフォルトのMTAがPostfixに変更されました。

続きを読む

ワイルドカードSSLのCSR作成方法

ワイルドカードSSLを取得する際にCommon Nameの書き方で迷ったことがありますので、今回はワイルドカードSSLのCSR作成方法を書こうと思います。特に複雑なことなどはありませんので、個人的な備忘録です。

まずは、秘密鍵を生成します。今回取得するワイルドカードSSLのドメインをpoitan.jpとし、入力箇所は太字で記述します。

# cd /etc/httpd/conf
# openssl genrsa -des3 -out ./ssl.key/poitan.jp.key 2048
.........................................+++
.................................................++++
e is 65537 (0x10001)
Enter pass pharase for ./ssl.key/poitan.jp.key: パスワード
Verifying - Enter pass phrase for ./ssl.key/poitan.jp.key: パスワード

続きを読む

RapidSSLのクロスルート設定

SSLと聞くと”高い”というイメージがありますが、最近では格安のSSLもあります。以前は携帯の対応率を考慮してベリサインを使っていましたが、携帯の対応率も同じくらいになり、グローバルサインに変更。最近はさらに格安のRapidSSLを利用しています。

金融等のクリティカルなデータを扱うサイト以外は、通信の暗号化がしっかりしていればいいため、高価なSSLを取得しなくても問題ありません。

RapidSSLの取得方法、サーバへのインストールは他社と全く同じですので、それほど難しくは無いはずです。証明書のインストールも同じですが、1点注意点があります。最近ではGoogleのAndroid OSでアクセスされる場合もありますが、Android OSのバージョンによっては証明書と一緒に送られてくる中間証明書を利用すると警告メッセージが表示されてしまいます。

続きを読む