RPX API调用auth_info返回“缺少参数”错误

时间:2010-02-16 18:09:51

标签: c# post openid rpxnow rpx

我无法让RPX auth_info API调用工作。它不断返回错误:“缺少参数:apiKey”我正在使用他们的Wiki上提供的C#RPX助手类:RPX Helper Class

以下是我的Page_Load方法中的代码。 RPX服务的工作原理是将POST发送到我指定的Url。我的代码从下面显示的帖子数据中获取令牌。然后我调用AuthInfo API方法。

string token = Request.Params["token"];
string apiKey = "xxxxxxxxxxxxxxx"; //my API key
Rpx rpx = new Rpx(apiKey, "http://rpxnow.com");
XmlElement xmlElement = rpx.AuthInfo(token);

一切看起来都不错。令牌已填充。在其代码中,“apiKey”值对被添加到写入请求流的后期数据中。有人有运气吗?任何想法为什么这不起作用?感谢。

2 个答案:

答案 0 :(得分:0)

为其他人寻找答案。示例代码是垃圾。

您需要将基本网址设置为https://rpxnow.com - 提供的代码错误。我可以发布提供的网址,但必须通过HTTP S 而不是HTTP

答案 1 :(得分:0)

RPX示例代码不是很清楚。在调用ApiCall方法时,我收到了404错误。

使用Javascript:

janrain.settings.tokenUrl = 'http://mydomain/Test.ashx';

Test.ashx

    public void ProcessRequest(HttpContext context) {

        using (StreamWriter writer = new StreamWriter(context.Server.MapPath("/test.txt"))) {
            var token = context.Request.Form["token"];
            writer.WriteLine("Token: " + token);

            try {
                var rpx = new Rpx("my_id", "https://rpxnow.com/");
                var authInfo = rpx.AuthInfo(token);
                var doc = XDocument.Load(new XmlNodeReader(authInfo));
                writer.WriteLine(doc.Root.Descendants("displayName").First().Value);
                writer.WriteLine(doc.Root.Descendants("identifier").First().Value);
            }
            catch (Exception ex) {
                writer.WriteLine("Error: " + ex.Message);
            }

            foreach (string header in context.Request.Headers)
                writer.WriteLine(header + " - " + context.Request.Headers[header]);
        }
    }