2

我正在尝试使用 MindMeister API(如此处所述:http: //www.mindmeister.com/developers/authentication)来制作桌面应用程序。到目前为止,我能够生成一个身份验证 url,如他们的开发人员指南中所记录的那样,使用 api 密钥和共享密钥,最终看起来像这样:http ://www.mindmeister.com/services/auth/?api_key= abc123&perms=删除&api_sig=zxy987

如果我将该网址复制并粘贴到我的浏览器中,它会将我带到他们的登录页面。一旦我登录,它就会说我的应用程序已经过身份验证,我可以继续我的应用程序,然后我就可以开始使用不同的 REST API 方法。我想导航到该身份验证 URL 并以编程方式登录 MindMeister,而无需将身份验证 URL 复制并粘贴到浏览器中。

到目前为止,我已经尝试过这样的事情

        string authenticate 
          = @"http://www.mindmeister.com/services/auth/?" 
               + api_key=abc123&perms=delete&api_sig=zxy987";
        WebRequest request = WebRequest.Create(authenticate);
        @"https://www.mindmeister.com/account/login");
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        //response.ResponseURI == @"https://www.mindmeister.com/account/login"

        WebRequest request2 = WebRequest.Create(response.ResponseUri);
        request2.Credentials = new NetworkCredential("username", "password");
        HttpWebResponse response2 = (HttpWebResponse)request2.GetResponse();

但这不起作用。

我能得到一些关于如何完成我想要的指导吗?我几乎没有使用 WebRequest 或 HttpWebResponse 的经验,因为我基本上只是在 StackOverflow 上复制并粘贴了其他解决方案。

4

1 回答 1

0

从文档看来,官方不支持以这种方式登录。请记住,如果使用 API 密钥运行的大多数服务不喜欢它的使用方式,它们可以并且将会撤销该密钥。

但是,每次用户启动您的应用程序时可能都不需要登录。

看来,如果您frob使用该mm.auth.getFrob方法获得 a 并将其作为参数与登录名一起传递,则您可以frob在该mm.auth.getToken方法上使用相同的参数。然后,您可以将此令牌存储在用户桌面上的某个位置,并可以在将来使用它来使用方法。

这应该一直有效,直到用户主动撤销对您的应用程序的权限。

于 2012-10-26T18:50:59.933 回答