スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Java] Salesforce Chatterに投稿するサンプル

会社でChatterを使い始めたのでお遊び的にやってみました(´ω`)
SalesforceのAPIを使用(wsc-gae.jarを使えばGoogleAppEngineでも使用おk)
ここからダウソ
・partner-18.jar
・wsc-18.jar
・wsc-gae.jar ※GoogleAppEngineで使う場合



import java.io.IOException;
import com.sforce.soap.partner.Connector;
import com.sforce.soap.partner.PartnerConnection;
import com.sforce.soap.partner.QueryResult;
import com.sforce.soap.partner.SaveResult;
import com.sforce.soap.partner.sobject.SObject;
import com.sforce.ws.ConnectionException;
import com.sforce.ws.ConnectorConfig;

public class test
{
static String USERNAME = "=== INSERT YOUR CHATTER ID HERE ===";
static String PASSWORD = "=== INSERT YOUR CHATTER PWD HERE ===";
static PartnerConnection connection;

public static void main(String[] args) throws ConnectionException, IOException
{
// 自分の表示名をコンソールに表示
ConnectorConfig config = new ConnectorConfig();
config.setUsername(USERNAME);
config.setPassword(PASSWORD);
config.setTransport(GaeHttpTransport.class); // GAEで使う場合のみ
//config.setTraceMessage(true);

connection = Connector.newConnection(config);
System.out.println("Hello " + connection.getUserInfo().getUserFullName());

// ステータスを新規追加(Status Update)
SObject user = new SObject();
user.setType("User");
user.setId(connection.getUserInfo().getUserId());
user.setField("CurrentStatus", "chatter api からの入力");

SaveResult[] results = connection.update(new SObject[] { user });
if (!results[0].isSuccess())
{
System.out.println("Error: " + results[0].getErrors()[0].getMessage());
}
else
{
System.out.println("User status successfully updated.");
}

// 自分のステータスの直近10件を表示
String query = "SELECT Id, Type, CreatedDate, ParentId, Parent.Name, FeedPost.body";
query += " FROM NewsFeed WHERE Type= 'UserStatus'";
query += " ORDER BY CreatedDate DESC, ID DESC LIMIT 10";
QueryResult queryResults = connection.query(query);

if (queryResults.getSize() > 0)
{
for (SObject s : queryResults.getRecords())
{
System.out.println(s.getChild("CreatedDate").getValue() );
System.out.println(s.getChild("FeedPost").getField("Body") );
}
}
}
}

SalesforceのOAuthを使ってみたく、色々調べてはいるのですが、
Twitter4jみたいに便利なAPIがナイので難しいかも(;´Д`)

下手な方法ではありますが、一応。。。
[GAE] SalesforceのOAuth2を使ってみる



【追記】
ちなみに上記のコードはDeveloper Editionで作ったIDとパスを使うと何故か失敗します(;´Д`)
会社で作った一般用?IDだとおk。なんで??

できました(・ω・)自分のパスにセキュリティトークンを付ければおkでした。
自分のセキュリティトークンの確認方法はSalesForceにログイン後、
「個人設定」⇒「セキュリティトークンのリセット」で新しいセキュリティトークンがメールされるので、
パスワード = "mypassword"、セキュリティトークン = "XXXXXXXXXX" の場合、
パスワード欄に "mypasswordXXXXXXXXXX" と入力する。
だそうです。

あとSObjectのsetFieldで"ParentId"に、既存グループのID(String)を指定しても失敗しちゃいます。。。
グループを指定して投稿したい場合は何か方法あるのかな?
⇒OAUTH2.0を使用したグループへの投稿方法はコチラ
関連記事
スポンサーサイト

Pagination

Trackback

Trackback URL

http://morado106.blog106.fc2.com/tb.php/69-0de31c2f

Comment

Post Your Comment

コメント登録フォーム
公開設定

Utility

プロフィール

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。