1

画像を imgur にアップロードするための C# サンプルを大量に見つけましたが、それらはすべて匿名 API を使用しているようです。これらのいずれかを認証済み API の使用に適合させることができるかどうか、および/またはブラウザーを起動せずにこれを行うためにどの oAuth API を使用する必要があるかについて、SO からの考え。

私が見ているサンプル (「C# IMGUR」を検索すると他にもあります) は次のとおりです: http://api.imgur.com/examples#uploading_cs

次に、認証済み APIについて説明している API セクションには、次のように記載されています。

Authenticated API を使用するには、まずアプリケーションを登録し、コンシューマ キーとシークレットを取得する必要があります。このキーとシークレット スキームは、OAuth 1.0a 認証プロトコルに使用されます。

しかし、WP7 のようなモバイル デバイスから API と通信する場合に、これがどのように適合するかは明らかではありません。特に、OAuth examples wiki for .net に示されている例はブラウザを使用しており、このアプリケーションで imgur をバックグラウンドでシームレスに使用できるようにしたいと考えています。アプリをアップロードするためのアカウントを登録したので、ユーザーが認証を提供する必要はありません。

ありがとう!

4

2 に答える 2

0

を使用する必要があることが必須でない場合は、imgurを試すことをお勧めしますyfrog

C# の例を作成する時間がなくて申し訳ありませんが、ここに PHP の例を示します: ( source link )

<?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

?>

編集:

通常のフローでは、アプリケーションは要求トークンを Twitter の OAuth 仕様の実装で oauth/authorize に送信する必要があります。

ここに画像の説明を入力

アクセス トークンの有効期間はどのくらいですか?

現在、アクセス トークンの有効期限はありません。ユーザーが設定からアプリケーションを明示的に拒否した場合、または Twitter 管理者がアプリケーションを一時停止した場合、アクセス トークンは無効になります。申請が一時停止された場合、申請ページに一時停止されたことを示すメモが表示されます。

ソース: http://dev.twitter.com/doc

アクセストークンを取得する必要があり、それを取得するには、ユーザーが最初にアプリケーションを承認する必要があります-それを回避する方法はありません.

さらに、アプリケーションが 1 つのアカウントで持つことができる (書き込み) アクセスの数は、1 日あたり最大 300 までに制限されています。したがって、プログラムが 1 ~ 3 人で動作するように設計されていない限り、その制限に達することになります。私の結論は次のとおりです。ユーザーは認証を提供する人である必要があります。

于 2011-03-23T10:25:48.863 に答える