アーカイブ

2011 年 7 月 のアーカイブ

twitter日本語ハッシュタグの対応

2011 年 7 月 13 日 コメント 17 件

Twitterブログ: #日本語ハッシュタグ
こちらの対応。

以前はハッシュタグの対応に正規表現を利用していたかと思いますが、最近はstatusからハッシュタグ情報がとれます。
GET statuses/show/:id | Twitter Developers
include_entities=trueでhashtagsがとれてその中にハッシュタグ情報が。

APIのバグかと思われますが、「ー」で終了しているタグがhashtagsにはいってきません。
api.twitter.com/1/statuses/show/90961863306772481.xml?include_entities=true
バグレポートすればそのうち直るのかな。

searchAPIにはそもそもハッシュタグ情報が含まれないので現状では解決策なし。
GET search | Twitter Developers

カテゴリー: 日記 タグ:

Androidでtwitter4jを利用してOAuth認証(ブラウザ)

2011 年 7 月 4 日 コメントはありません

他のIntentから遷移し、URL表示しないブラウザを立ち上げ認証したらhogehoge。

public class OAuthActivity extends Activity {
    final private String CONSUMER_KEY = "xxxxxx";
    final private String CONSUMER_SECRET = "xxxxxx";

    private String CALLBACK_URL = "myapp://oauth";
    private OAuthAuthorization oauth;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        WebView webview = new WebView(this);
        setContentView(webview);

        Configuration config = new ConfigurationBuilder().build();
        oauth = new OAuthAuthorization(config);
        oauth.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
        oauth.setOAuthAccessToken(null);
        try {
            String url = oauth.getOAuthRequestToken(CALLBACK_URL).getAuthorizeURL();
            webview.loadUrl(url);
        } catch (TwitterException e) {
            Toast.makeText(this, R.string.twitter_failed, Toast.LENGTH_LONG).show();
            finish();
        }
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);

        Uri uri = intent.getData();
        if (uri != null && uri.toString().startsWith(CALLBACK_URL)) {
            String verifier = uri.getQueryParameter("oauth_verifier");
            try {
                AccessToken at = oauth.getOAuthAccessToken(verifier);
                Log.d(getLocalClassName(), "screen_name = " + at.getScreenName());
                Log.d(getLocalClassName(), "access_token = " + at.getToken());
                Log.d(getLocalClassName(), "access_token_secret = " + at.getTokenSecret());
                // hogehoge
                Toast.makeText(this, R.string.twitter_login_success, Toast.LENGTH_LONG).show();
                finish();
            } catch (Exception e) {
                Log.w(getLocalClassName(), e.getMessage());
                Toast.makeText(this, R.string.twitter_login_failed, Toast.LENGTH_LONG).show();
                finish();
            }
        }
    }
}

AndroidManifest.xml該当箇所。
lunchModeで多重起動させない。
あとヒストリー残さない。
ブラウザから「myapp://oauth」でIntentが起動するように。

        <activity
            android:name=".OAuthActivity"
            android:launchMode="singleTask"
            android:noHistory="true"
            >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="myapp" android:host="oauth" />
            </intent-filter>
        </activity>
カテゴリー: android タグ: , , ,

Mac OS XにPEARのインストール

2011 年 7 月 1 日 コメントはありません

Mac OS XにPEARのインストール – ぱんぴーまっしぐら
うまく行かなくなってたので。

$ curl -O http://pear.php.net/go-pear.phar
$ php go-pear.phar

パイプでつなぐとreadlineがうまくいかないので別で実行。
ユーザー環境にインストールしようとするのでそのままEnter

~/pear/bin/pear help
カテゴリー: php タグ: ,