我正在尝试使用OAuth编写一个Android应用来从Elgg获取信息。我正在关注此tutorial,其代码可用here。
检索请求令牌时遇到问题。我正在使用signpost库。我的应用程序中的以下语句引发异常:
// consumer is of type : oauth.signpost.OAuthConsumer
// provider is of type : oauth.signpost.OAuthProvider
String url = provider.retrieveRequestToken(consumer, "elgg://oauth");
例外是:
Request token or token secret not set in server reply.
The service provider you use is probably buggy.
消费者被构建为:
consumer = new CommonsHttpOAuthConsumer("<some_key>", "<some_secret>");
提供者被构建为:
String BASE_URL = "http://<ip-address>:80/elgg" ;
String REQUEST_URL = BASE_URL + "/pg/oauth/requesttoken";
String ACCESS_URL = BASE_URL + "/pg/oauth/accesstoken";
String AUTHORIZE_URL = BASE_URL + "/pg/oauth/authorize";
provider = new CommonsHttpOAuthProvider(REQUEST_URL, ACCESS_URL, AUTHORIZE_URL);
我发现此问题已发布here,但没有答案。
有谁知道如何解决这个问题?
我想知道它是否与此page中的以下句子有关:
Using your Consumer -
You use the consumer just as you would any other OAuth consumer.
The plugin works by hooking into the PAM system within Elgg and
validating OAuth credentials, if they exist on the query.
我是否需要为Elgg添加任何额外的PAM插件,例如this一个(它的版本似乎过时了)?
修改
我确实在Elgg中安装了URL Getter插件,OAuth插件依赖于该插件。