Pentaho の REST クライアント リクエストで Twitter にリクエストを送信できるようにしたいのですが、このソフトウェアには oauth の概念がありません。Pentaho の Java クラス変換で実装したい( Java での OAuth の実装) きちんとした Java クラスを見つけましたが、Pentaho を初めて使用するので、このタスクは非常に困難です。誰かがこれで私を助けてくれることを願っています....
1911 次
1 に答える
3
twitter4Jという素晴らしい Twitter Java ライブラリを見つけ、コア クラスを pentaho ディレクトリ pentaho/design-tools/data-integration/libext にインポートし、以下のカスタム ユーザー Java クラスを作成しました。
// NO COLLECTION TYPE SAFETY ALLOWED, MUST CAST ALL OBJECTS
import twitter4j.*;
import twitter4j.auth.*;
import twitter4j.conf.*;
//import other libs here
//put your vars here
// Variables
private Twitter twitter = null;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
Object[] r = getRow();
if (r==null)
{
setOutputDone();
return false;
}
if (first) {
first=false;
paging = new Paging();
paging.setCount(100);
}
oauth_user_key = get(Fields.In, "oauth_user_key").getString(r);
oauth_user_secret = get(Fields.In, "oauth_user_secret").getString(r);
consumer_key = get(Fields.In, "consumer_key").getString(r);
consumer_secret = get(Fields.In, "consumer_secret").getString(r);
//wierd long/string thing here (pentho compiles java wierd)
user_id = get(Fields.In, "source_user_id").getInteger(r);
Long user = user_id;
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setIncludeEntitiesEnabled(true)
.setOAuthConsumerKey(consumer_key)
.setOAuthConsumerSecret(consumer_secret)
.setOAuthAccessToken(oauth_user_key)
.setOAuthAccessTokenSecret(oauth_user_secret);
twitter = new TwitterFactory(cb.build()).getInstance();
try {
//be creative with twitter4j here and output rows with results (may require a loop)
} catch (TwitterException e){
logDebug(e.getMessage());
return true;
}
logBasic("twitter collect done" );
return true;
}
于 2012-06-27T13:20:09.713 に答える