我正在使用CFML和Twitter4j来返回时间表和列表。
我想将通话中的数据返回lookupUsers(java.lang.String[] screenNames)
通过Twitter4j。
我试过了: -
strList = createObject("java", "java.util.ArrayList");
strList.add(strOriginUser);
originUser = t4j.lookupUsers(strList);
并且: -
strUserString = JavaCast("String", strOriginUser);
originUser = t4j.lookupUsers(strUserString);
我知道t4j对象正在运行,因为我已经使用它来获取时间线等,但这里是为了完整性: -
public function init_twitter() {
//CONFIGURE twitter4j
configBuilder = createObject("java", "twitter4j.conf.ConfigurationBuilder");
configBuilder.setOAuthConsumerKey(#application.twitter_consumer_key#);
configBuilder.setOAuthConsumerSecret(#application.twitter_consumer_secret#);
configBuilder.setOAuthAccessToken(#application.twitter_access_token#);
configBuilder.setOAuthAccessTokenSecret(#application.twitter_access_token_secret#);
configBuilder.setIncludeEntitiesEnabled(true);
configBuilder.setJSONStoreEnabled(true);
config = configBuilder.build();
twitterFactory = createObject("java", "twitter4j.TwitterFactory").init(config);
variables.t4j = twitterFactory.getInstance();
return this;
}
twitter4j文件是: -
ResponseList<User> lookupUsers(java.lang.String[] screenNames) throws TwitterException
最多返回100个用户的扩展信息,由ID,屏幕名称或两者的组合指定。作者的最新状态(如果身份验证用户具有权限)将以内联方式返回。 此方法调用http://api.twitter.com/1.1/users/lookup.json
参数:
screenNames
- 指定要返回的用户的屏幕名称。返回:
users
答案 0 :(得分:1)
看起来您正在尝试将ArrayList
对象传递给lookupUsers
,但该方法仅接受String[]
(一个字符串数组)作为参数。因此,除非CFML进行转换,否则我认为它无法正常工作。
从粗略地看一下ColdFusion文档,看起来CFML可以隐式地将CFML数组转换为Java数组,所以可能以下方法可行:
screenNames = arrayNew(1);
screenNames[1] = 'Fry';
originUser = t4j.lookupUsers(screenNames);
或者,如果你想继续使用一个列表,那么ArrayList#toArray(T[])
可能会有用,虽然我不能说它在CFML中有多大用处。
N.B。请原谅我的CFML代码段。