C# imgur上载到c中经过身份验证的api#

C# imgur上载到c中经过身份验证的api#,c#,oauth,imgur,C#,Oauth,Imgur,我找到了大量的C#样本,可以将图像上传到imgur。。。然而,他们似乎都在使用匿名API。关于是否可以将其中任何一个修改为使用经过身份验证的API,以及/或者应该使用什么oAuth API来实现这一点,而不必打开浏览器的任何想法 我正在查看的示例(如果搜索“C#IMGUR”,还有其他示例)如下: 然后,API部分讨论了以下内容: 要使用经过身份验证的API 你要做的第一件事就是注册 申请并获得您的 使用者密钥和密码。这把钥匙 秘密方案用于OAuth 1.0a身份验证协议 但当从移动设备(如WP7

我找到了大量的C#样本,可以将图像上传到imgur。。。然而,他们似乎都在使用匿名API。关于是否可以将其中任何一个修改为使用经过身份验证的API,以及/或者应该使用什么oAuth API来实现这一点,而不必打开浏览器的任何想法

我正在查看的示例(如果搜索“C#IMGUR”,还有其他示例)如下:

然后,API部分讨论了以下内容:

要使用经过身份验证的API 你要做的第一件事就是注册 申请并获得您的 使用者密钥和密码。这把钥匙 秘密方案用于OAuth 1.0a身份验证协议

但当从移动设备(如WP7)与API进行通信时,这一点并不明显。特别是,for.net中显示的示例使用浏览器,我希望此应用程序在后台无缝地使用imgur。。。例如,我为我的应用程序注册了一个要上载到的帐户,因此用户不必是提供身份验证的人


谢谢

当您使用Oauth时,最终用户需要在imgur上拥有某种帐户。我刚刚注册,我需要登录并选择一个子域等。看来你的应用程序的最终用户在进入Oauth部分之前也需要这样做。到目前为止,这与我对需要Oauth的API的其他使用并没有太大区别

一旦用户拥有一个帐户,他们就需要通过Oauth有效地获得一组委派的凭据。这要求您获取授权URL,在浏览器中打开该URL,以便用户确认他们授权了您的应用程序,然后将为他们提供一个可输入客户端应用程序的验证令牌。完成这些步骤后,客户端应用程序应具有调用API所需的所有Oauth凭据


我认为只有当您有人拥有用户的cookie并且能够执行检索和输入验证器代码所需的HTTP请求时,您才能避免浏览器步骤。

如果不必要,您需要使用
imgur
,那么我建议您尝试
yprog

例子 很抱歉,我没有时间编写C#示例,但这里有一个PHP示例:()


当然可以修改。。如果您签出了imagur API。。你会知道哪种方法最适合你的需要。。你还没有问一个具体的问题。给我们看看你正在尝试的代码,我们会看到的。好吧,很公平。。。我添加了更多细节:-)正如我在问题中提到的,我(开发人员)已经开立了一个帐户,我希望应用程序使用这个帐户,并且只使用这个帐户。“当twitter用户授予您的应用程序访问权限时”,最终用户将不会提供帐户凭据。。。这是我有疑问的部分。我希望应用程序能够访问该服务,以便将内容提交到专门为该应用程序打开的帐户中。有没有一种方法可以在不需要用户干预就可以获得oauth令牌的情况下实现这一点
<?php

    /**
     * This example demonstrates how to use OAuth credentials of your application to upload data to yfrog
     * Usage: upload-to-yfrog-example.php <FILENAME-TO-UPLOAD>
     */

    // TODO: PUT YOUR KEYS HERE

    // your app's OAuth consumer & secret
    define('OAUTH_CONSUMER_KEY', '');
    define('OAUTH_CONSUMER_SECRET', '');

    // your app user's token and secret, when twitter user granted access to your app
    define('OAUTH_TOKEN_KEY', '');
    define('OAUTH_TOKEN_SECRET', '');

    // END OF TODO

    // you can grab required file here:
    // http://github.com/abraham/twitteroauth
    require_once('OAuth.php');

    // instantiating OAuth customer 
    $consumer = new OAuthConsumer(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET);
    // instantiating signer
    $sha1_method = new OAuthSignatureMethod_HMAC_SHA1();
    // user's token
    $token = new OAuthConsumer(OAUTH_TOKEN_KEY, OAUTH_TOKEN_SECRET);

    // signing URL
    $url = 'https://twitter.com/account/verify_credentials.xml';
    $request = OAuthRequest::from_consumer_and_token($consumer, $token, 'GET', $url, array());
    $request->sign_request($sha1_method, $consumer, $token);

    $url = $request->to_url();
    // OK, URL is signed, we can pass it to yfrog API

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://yfrog.com/api/upload');

    $post = array
    (
        'username' => 'yfrogtests', // twitter's username
        'verify_url' => $url,  // signed URL
        'media' => '@' . $argv[1], // filename
        'auth' => 'oauth',  // auth=oauth is mandatory to use verify_url method
        'message' => 'see it live on yfrog' // message to be sent, will not be posted to twitter
    );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

    $response = curl_exec($ch);
    curl_close ($ch);

    echo $response;

    // see http://twitter.com/yfrogtests

?>