twitterAPIを使うときにはサーバの時刻設定に注意したほうがいいです
こんばんは。
twitter apiを使って、Webアプリを作ろうとしていたのですが、ちょっとつまづきました、、
access_tokenが取得されず困ってました。
原因はサーバの時刻設定がズレ過ぎていたことが原因でアクセストークンを取得出来ませんでした。
Array
(
[Failed to validate oauth signature and token] =>
)
こんな感じでエラーが出てました。
それで幸運にも同じような事例が過去にありました。過去の人、ありがとうございます
Failed to validate oauth signature and token | Twitter Developers
それで、今回はNTPサーバをたてて対応しました。仮想環境のCentOS6.3に対してです。
# yum -y install ntp # vi /etc/ntp.conf #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap ← 追加(内部からの時刻同期を許可) # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.rhel.pool.ntp.org server 1.rhel.pool.ntp.org server 2.rhel.pool.ntp.org ↓ 時刻同期先NTPサーバーを変更 server ntp.nict.jp # 日本標準時を提供しているNTPサーバー(stratum 1) server ntp.jst.mfeed.ad.jp # 上記サーバーと直接同期しているNTPサーバー(stratum 2) # ntpdate ntp.nict.jp ← 手動で時刻を合わせる # /etc/rc.d/init.d/ntpd start ←ntpサーバ起動 # chkconfig ntpd on ←自動起動設定
こんなかんじでいけました!
今回は以下のサイトを参考にさせて頂きました。ありがとうございました。
NTPサーバー構築(ntpd) - CentOSで自宅サーバー構築
Failed to validate oauth signature and token | Twitter Developers
以下、追記です。
って書いてましたが、うまくntpサーバが時刻同期をうまく行かなかったので、今までは手動でやっていました。
$ sudo ntpdate ntp.nict.jp
こんなかんじです
ですが、さすがに毎回プログラミングするたびにやるのはめんどいので、別の方法をとることにしました。
vmware-toolsをインストールして、それのコマンドを使えば、できるようです。
ちなみにインストールは以下のサイトを参考にしました。
CentOS6.2にVMware Toolsをインストールする | mawatari.jp
それから、
$ vmware-toolbox-cmd timesync status Enabled #Enabledならおk、Disabaledの場合は以下のコマンドも実行する $ vmware-toolbox-cmd timesync enable $ vmware-toolbox-cmd timesync status #これでおkです。 Enabled #Enabledならおk
こんな感じです。
コマンド実行部分は以下のサイトを参考にしました。
VMwareToolsの時刻同期はどのように動作確認・有効にすれば良いですか | ニフティクラウド