ColdFusionの関数内で指定したアカウントでツイート

元記事はこちらです。

■ライブラリを使用した前提での関数

<cffunction name="tweet" access="public" returnType="void" output="no">
    <cfset var local = structNew()>

    <!--- (monkehTweet_V1.3.1)
        通常はApplication.cfcで設定しているが、
        taskで実行することと、別フォルダで実行するので
        ここで設定
    --->
    <cfset local.objMonkehTweet = createObject('component',
            'com.coldfumonkeh.monkehTweet')
            .init(
                consumerKey         =   'xxxxxxxxxx',
                consumerSecret      =   'xxxxxxxxxx',
                oauthToken          =   'xxxxxxxxxx',
                oauthTokenSecret    =   'xxxxxxxxxx',
                userAccountName     =   'xxxxxxxxxx',
                parseResults        =   true
            )>

    <cfset local.tmp_url="hoge.com">
    <cfset local.authStruct = local.objMonkehTweet.getAuthorisation(callbackURL='http://#local.tmp_url#/?go=authorize')>

    <!---
    ツイッターアプリの通常の動作
        1.ツイッター画面で、ユーザー名、パスワードを入力
        2.OKであればURLをクリック
        3.戻った先のプログラムで、url.oauth_verifierを取得
    今回は、強制的に認証し、oauth_verifierの値を取得する。
    <cflocation url="#local.authStruct.authURL#" addtoken="false" />
    --->
    <cfhttp url="#local.authStruct.authURL#" method="post">
        <cfhttpparam type="formField" name="session[username_or_email]" value="xxxxxxxxxx">
        <cfhttpparam type="formField" name="session[password]" value="xxxxxxxxxx">
    </cfhttp>

    <!--- oauth_verifier取得 --->
    <cfset local.srch_str = "oauth_verifier">
    <cfset local.oauth_verifier = "">
    <cfset local.tmp = REMatchNoCase("&#local.srch_str#=(.*?)""", cfhttp.filecontent)>
    <cfif arrayLen(local.tmp)>
        <cfset local.oauth_verifier = reReplaceNoCase(local.tmp[1], "&#local.srch_str#=(.*?)""", "\1")>
    </cfif>
    <cfif local.oauth_verifier eq "">
        <!--- たぶんエラーなので終了 --->
    </cfif>

    <cfset local.returnData = local.objMonkehTweet.getAccessToken(  
                                requestToken    =   local.authStruct.token,
                                requestSecret   =   local.authStruct.token_secret,
                                verifier        =   local.oauth_verifier
                            )>

    <cfset local.objMonkehTweet.setFinalAccessDetails(
                                oauthToken          =   local.returnData.token,
                                oauthTokenSecret    =   local.returnData.token_secret,
                                userAccountName     =   local.returnData.screen_name
                            )>

    <cfset local.mes = "hogehoge">

    <cfset local.ret = local.objMonkehTweet.postUpdate(local.mes)>
</cffunction>