2

我正在使用 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

4

1 回答 1

1

看起来您正在尝试将ArrayList对象传递到lookupUsers其中,但该方法仅接受String[](字符串数组)作为参数。因此,除非 CFML 进行转换,否则我认为它不会起作用。

粗略地看一下 ColdFusion 文档,看起来 CFML 可以隐式地将 CFML 数组转换为 Java 数组,因此以下方法可能会起作用:

screenNames = arrayNew(1);
screenNames[1] = 'Fry';

originUser = t4j.lookupUsers(screenNames);

或者,如果您想继续使用列表,则有一个ArrayList#toArray(T[])可能有用的列表,尽管我不能说它在 CFML 中会有多大用处。

注意请原谅我的 CFML 代码片段。

于 2013-06-19T12:09:02.437 回答