QOAuthでtwitterに凸その2

例によってぬっぽりかいつまむ。

 

 

 

    QOAuth::Interface qoauth;
    qoauth.setConsumerKey(NOPTTER_CONSUMER_KEY);
    qoauth.setConsumerSecret(NOPTTER_CONSUMER_SECRET);
    QOAuth::ParamMap map;
    QByteArray url = "http://api.twitter.com/1/statuses/home_timeline.xml";
    QByteArray attr = qoauth.createParametersString(url,
                                                      QOAuth::GET,
                                                      config.value("token").toByteArray(),
                                                      config.value("secret").toByteArray(),
                                                      QOAuth::HMAC_SHA1,
                                                      map,QOAuth::ParseForInlineQuery);
    qDebug() << url.append(attr);

 

 

urlをwgetでもするとごにょごにょ…。

 

QOAuthでtwitterに凸

前置きもなくいきなりかいつまみます。

 

 

    QTextStream in(stdin);
    QTextStream out(stdout);
    QOAuth::Interface qoauth;
    qoauth.setConsumerKey("貴様のConsumerKey");
    qoauth.setConsumerSecret("貴様のConsumerSecret");
    QOAuth::ParamMap reply = qoauth.requestToken( "http://twitter.com/oauth/request_token",
                                                 QOAuth::GET,QOAuth::HMAC_SHA1);
    QByteArray token;
    QByteArray tokenSecret;
    if (qoauth.error() == QOAuth::NoError) {
        token = reply.value( QOAuth::tokenParameterName() );
        tokenSecret = reply.value( QOAuth::tokenSecretParameterName() );
    } else return 1;
    out << "url: http://twitter.com/oauth/authorize?oauth_token=" << token << endl;
    out << "input pin: " << endl;
    QString pin;
    in >> pin;
    QOAuth::ParamMap map;
    map.insert("oauth_verifier",pin.toAscii());
    reply = qoauth.accessToken("http://twitter.com/oauth/access_token",QOAuth::POST,token,
                               tokenSecret,QOAuth::HMAC_SHA1,map );
    if (qoauth.error() == QOAuth::NoError) {
        token = reply.value( QOAuth::tokenParameterName() );
        tokenSecret = reply.value( QOAuth::tokenSecretParameterName() );
        out << "token: " << token << endl;
        out << "tokenSecret: " << tokenSecret << endl;
    } else {
        qDebug() << qoauth.error();
    }

 

 

こんな感じ。

requestTimeoutが短いと失敗すると言う罠にずっぽりはまったりとかね。

nopview

ほんと久々にコード書いてupしました。

くだらない俺仕様プログラムですが、興味のある方はお試し下さい。随所に手抜きが見られるいつものTAMクオリティですが。

 

nopview

 

ちとこまけえ話をしますと、テーマとしてはgwenviewよりも簡単にタグが付けられて、画像をフルスクリーンにできて、片手で操作できる。これです。

後は、ディレクトリ管理から解放される、かな。

この手のカタログ管理ソフトって結構あるような気もします。digikamなんかもそうかな。

 

余談。

最初はnepomukを使ったKDEアプリケーションになる予定でした。でしたが、速度的な問題で我慢できなくなりました。

あと、nepomukを使ってしまうとタグが全体に筒抜けになるので他人にタグを見られるとすげえ恥ずかしいんじゃないかと言うのもあったり(性癖的な意味で)。

 

あと、カタログデータはメモリにがっつり持ち込むのでそれなりにメモリを食いますがスワップ発生しない限りはそこそこの速度で動きます。テストは1万枚以上の画像ファイル使ってやっとりますのでそのへんは確実です。でもメモリもりもり食うけどね。

 

実はWindowsでもコンパイルできますが…既に幾つか問題を見つけております。ですが、スルーで。