2015年2月26日木曜日

PHPでTwitterからTweetするまでを日本語で解説

PHPでTwitterからTweetするまでを日本語で解説

1.Twitterのアプリケーション管理のサイトへアクセス
  https://apps.twitter.com/



2.[Create New App]をクリック




3.[sign in]をクリック

4.メールアドレスとパスワードを入力してサインイン



5.とりあえず必須入力項目なのでName, Description, Websiteを入力

    ・Name・・・あなたのアプリケーション名。これは、つぶやきのとユーザ側の認証画面でソースの属性に使用されます。 32文字以内。
    ・Description・・・ユーザー向けの認証画面に表示され、アプリケーションの説明、。 10と200文字以内の間。
    ・Website・・・ユーザーは、ダウンロードを利用するか、あなたのアプリケーションの詳細情報を見つけるために行くことができ、アプリケーションのパブリックにアクセスホームページ、。この完全修飾URLは、あなたのアプリケーションで作成されたつぶやきのソース帰属で使用され、ユーザ側の認証画面に表示されます。
(あなたはまだ、URLをお持ちでない場合は、ちょうどここプレースホルダーを入れて、後でそれを変更することを忘れないでください。)



    Developer Agreementに同意するなら[Yes, I agree]にチェックを入れて[Create Your Twitter application]をクリック
 
6.以下のErrorが表示された場合、https://twitter.com/settings/add_phone にアクセスして携帯電話番号を登録する。
    ここで登録した携帯電話宛てに認証コードが送られてくるが、設定によっては迷惑メールに分類されたりするので注意。
    送られてきた認証コードを入力してモバイルアプリの登録を完了させる。

7.認証が完了するとアプリケーション管理の画面にアクセスできる。

8.Accessレベルを[Read and Write]に変更する。
    Access LevelがデフォルトではRead-onlyになっており、このままではTweetできないので、[modify app permissions]をクリックして、
    [Read and Write]を選択し、[Update Settings]をクリックする


 
    とりあえずアプリケーションの登録がここまで。実際にコードを書くよりも、登録作業が面倒臭い感じ。

9.次にtwitteroauthのソースをダウンロード。これはアプリケーションの認証に使用する。

    ・https://github.com/abraham/twitteroauth にアクセス
    ・[Download Zip]をクリック
    ・ダウンロードしたZipを展開して適当なフォルダ名に変更。(例:twitteroauth)

10.アプリケーションに必要な情報を取得する。

    ・https://apps.twitter.com/ にサインインする
    ・さきほど作成したアプリケーション名をクリックする
    ・[Keys and Access Tokens]のタブをクリックし、[Regenerate My Access Token and Token Secret]をクリックしてAccess Tokenを発行する
      以下の情報がアプリケーションを作成するのに必要となるのでコピーしておく

        Consumer Key (API Key)
        Consumer Secret (API Secret)
        Access Token
        Access Token Secret

11.コードはこんな感じ?
require "twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;

$consumer_key           = "XXXXXXXXXXXXXXXXXXXXXXXXX";
$consumer_secret        = "XXXXXXXXXXXXXXXXXXXXXXXXX";
$access_token           = "XXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX";
$access_token_secret    = "XXXXXXXXXXXXXXXXXXXXXXXXX";

$connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);

$res = $connection->post("statuses/update", array("status" => "こんにちは Twitter"));

echo print_r($res, true);


2015年2月22日日曜日

SSHでログインしてvimで作業するときに、日本語が文字化けするのでvimを置き換えてみた

さくらインターネットのサーバーを利用しているのだが、SSHでログインしてソースを修正するときにコメントなどの日本語が文字化けするので、.cshrcを編集して日本語を正しく表示できるようにしてみた。


alias vi "jvim3 -K TTT -k t"
#setenv EDITOR vi
setenv EDITOR jvim3
setenv LANG ja_JP.UTF-8
jvim3がインストールされていたので、jvim3のエイリアスにviを割り当てて、ついでにデフォルトの言語をja_JP.UTF-8に変更。 一旦、ログアウトしてログインしなおしたら無事日本語が文字化けせずに表示された。

2015年2月21日土曜日

XAMPPをインストール

久しぶりにPHPでアプリケーションを作りたくなり、手っ取り早く開発環境を整えるためにXAMPPをインストールしました。 

XAMPP は最も人気のある PHP 開発環境です。 XAMPP は、完全に無償で MySQL、PHP、および Perl を含んだ、簡単にインストールできる Apache ディストリビューションです。XAMPP オープン ソース パッケージは、インストールと利用が非常に簡単できるよう設定されています。

1.ダウンロード
   https://www.apachefriends.org/jp/download.html から今回は5.6.3 / PHP 5.6.3をダウンロード。

2.ダウンロードしたインストーラを実行します

3.アンチウィルスソフトが動作していると下のような質問が表示されますが、「Yes」をクリックして次へ進みます。

  


4.今度は下のような警告が表示されますが、「OK」をクリックして次へ進みます。


5.ようやくインストールが始まります。



6.必要なコンポーネントを選択します。とりあえずデフォルトで全部チェック入っているので、そのまま「Next」でいいでしょう。


7.インストール先も特に問題がなければそのままで「Next」をクリック。


8.Bitnamiからのお知らせもそのまま「Next」をクリック。


9.ここで「Next」をクリックすると後は待つだけ。


10.XAMPPのControl Panelを開始するか聞いてくるので、チェックボックスをONにして「Finish」をクリック。


11.サービスとして動作させたいアプリケーションを設定します。
   サービスとしてインストールしておくと、Windowsの起動時に自動的に実行されるので、手動で動かす手間が省けます。反面、Windowdsの起動に時間がかかったりする場合もあるので、ここはお好みで。

   私の場合はApacheとMySQLをサービスとしてインストールしたいので、この2つのチェックを有効にしました。


12.最後にApacheとMySQLの「Start」ボタンをクリックします。


13.動作確認してみましょう。

  ブラウザを起動して http://localhost にアクセスして以下の画面が表示されればインストールは成功です。


   


2014年12月10日水曜日

日付_時刻のフォルダを作成してカレントディレクトリ内のファイルをバックアップするバッチファイル

日付_時刻のフォルダを作成してカレントディレクトリ内のファイルをバックアップするバッチファイル

@ECHO OFF

SET YYYYMMDD=%DATE:~-10,4%%DATE:~-5,2%%DATE:~-2,2%
SET HHMM=%TIME:~0,8%
set HHMM=%HHMM::=%
set HHMM=%HHMM: =0%

SET DIR_NAME=%YYYYMMDD%_%HHMM%

ECHO %DIR_NAME%
MKDIR %DIR_NAME%

COPY .\* %DIR_NAME%

PAUSE


2014年12月7日日曜日

YouTubeの動画をダウンロードするには

YouTubeの動画をダウンロードするには

 ① 以下のURLからRealPlayerをダウンロードします   

   http://jp.real.com/windows/

 



② ダウンロードしたRealPlayerCloud_ja.exeを実行します



③  「次のプログラムにこのコンピュータへの変更を許可しますか?」と聞かれたら「はい」



④ [同意する]をクリック


⑤ BaiduIME 日本語入力システムをインストールするか確認されるので
 チェックボックスを外す(インストールしない)


⑥ セットアップを選択するように聞かれても画面右上のXボタンで閉じる

⑦ 「PCライブラリへのメディアの追加」は「次へ」をクリックする


⑧ 「結果」が表示されたら「完了」をクリックする。


⑨ ここから先はインストールしたRealPlayerで動画を保存する方法です。
  [スタート]→[すべてのプログラム]→[RealNetworks]→[RealPlayer]でRealPlayerを起動します。
  勝手に動画ニュースが再生され始めるので動画の左下にある一時停止ボタンで止めます。
  (これをやっとかないと、YouTubeと同時にニュースも再生されるので邪魔)


⑩ 画面左上の[RealPlayer Cloud]のボタンをクリックして[ファイル]→[開く]をクリックします


⑪ [開く]の画面が表示されたら「youtube.com」と入力します。



⑫ RealPlayerの中でYouTubeが見れるので、お目当ての動画を表示して再生すると、
  動画の右上に「このビデオをダウンロード」というボタンが表示されるので、これをクリックする
  とPCに動画がダウンロードできます。


⑬ ちなみに次回以降RealPlayerを起動するとFaceBookにログインするように言われるけど、画面右上のXボタンで無視できます。




2014年11月28日金曜日

スネーク記法をキャメル記法に変換するExcelの関数

DBの仕様書をもとにクラスのメンバを定義するのはよくあること。 DBのカラム名はスネーク記法で定義されていて、クラスのメンバはキャメル記法な場合にExcelで一気にスネーク記法からキャメル記法に変換するのに使ってました。
Attribute VB_Name = "snake2Camel"
Option Explicit

Const DELIMITER_SNAKE = "_"
Const DELIMITER_CHAIN = "-"
Const DELIMITER_CAMEL = ""

'------------------------------------------------------------
' 文字列strをUpperCamel形式に変換して返す
'------------------------------------------------------------
Function UpperCamel(ByVal str As String)
    Dim delimiter As String
    Dim i As Integer    'loop index
    Dim tmp As String
       
    '変換前の記法を判定
    If InStr(str, DELIMITER_SNAKE) > 0 Then
        delimiter = DELIMITER_SNAKE
    ElseIf InStr(str, DELIMITER_CHAIN) > 0 Then
        delimiter = DELIMITER_CHAIN
    Else
        delimiter = DELIMITER_CAMEL
    End If
    
    If delimiter <> DELIMITER_CAMEL Then
        Dim tokens() As String
        tokens = Split(str, delimiter)
        For i = 0 To UBound(tokens)
            tokens(i) = UCase(Left(tokens(i), 1)) & LCase(Mid(tokens(i), 2))
        Next
        str = Join(tokens, "")
    Else
        str = UCase(Left(str, 1)) & LCase(Mid(str, 2))
    End If
    
    '最初の1文字と数字の次は大文字
    tmp = UCase(Left(str, 1))
    For i = 2 To Len(str)
        If InStr("0123456789", Mid(str, i - 1, 1)) > 1 Then
            tmp = tmp & UCase(Mid(str, i, 1))
        Else
            tmp = tmp & Mid(str, i, 1)
        End If
    Next
    UpperCamel = tmp

End Function

'------------------------------------------------------------
' 文字列strをlowerCamel形式に変換して返す
'------------------------------------------------------------
Function LowerCamel(ByVal str As String)
    Dim delimiter As String
    Dim i As Integer    'loop index
    Dim tmp As String
       
    '変換前の記法を判定
    If InStr(str, DELIMITER_SNAKE) > 0 Then
        delimiter = DELIMITER_SNAKE
    ElseIf InStr(str, DELIMITER_CHAIN) > 0 Then
        delimiter = DELIMITER_CHAIN
    Else
        delimiter = DELIMITER_CAMEL
    End If
    
    If delimiter <> DELIMITER_CAMEL Then
        Dim tokens() As String
        tokens = Split(str, delimiter)
        For i = 0 To UBound(tokens)
            tokens(i) = UCase(Left(tokens(i), 1)) & LCase(Mid(tokens(i), 2))
        Next
        str = Join(tokens, "")
    Else
        '小文字が一つも出現しない場合は1単語とみなして全て小文字化
        If Not isContainSmallCase(str) Then
            str = LCase(str)
        End If
    End If
    
    '最初の1文字は小文字、数字の次は大文字
    tmp = LCase(Left(str, 1))
    For i = 2 To Len(str)
        If InStr("0123456789", Mid(str, i - 1, 1)) > 1 Then
            tmp = tmp & UCase(Mid(str, i, 1))
        Else
            tmp = tmp & Mid(str, i, 1)
        End If
    Next
    LowerCamel = tmp

End Function

'------------------------------------------------------------
' 文字列strに小文字を含む場合はTRUEを返す
'------------------------------------------------------------
Function isContainSmallCase(ByVal str As String) As Boolean
    Dim i As Integer ' loop index
    Dim a As Integer ' ascii code
    isContainSmallCase = False
    For i = 1 To Len(str)
        a = Asc(Mid(str, i, 1))
        If a >= 97 And a <= 122 Then
            isContainSmallCase = True
        End If
    Next
End Function

2014年9月18日木曜日

Eclipse上のTomcatをデバッグで起動しようとしたらAGENT_ERROR_TRANSPORT_INIT

Eclipse上のTomcatをデバッグで起動しようとしたらコンソールにAGENT_ERROR_TRANSPORT_INITが表示されてデバッグ起動が失敗。

ATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) ERROR: transport error 202: gethostbyname: unknown host ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:741]
サーバー、プロジェクトをクリーンしても起動できず・・・ Eclipseをクリーンしたところ起動できた。

cd /d %~dp0 start .\eclipse.exe -clean %*