0

私はこの問題に3日間戸惑いましたが、解決策がわかりません。そういう質問をする場でなかったらすみません。しかし、私には他に選択肢がないことを信じてください。

ユーザーがビデオをアップロードしてから、YouTube API を介して特定の YouTube チャンネルにアップロードできるアプリケーションがあります。このアプリは、Amazon ホストでホストされています。これまでのところ素晴らしいです!

SSL の理由により、このアプリを別のホストにデプロイする必要があります。したがって、ホストの正確なインスタンスを作成します。しかし、問題は、YouTube API 経由でアップロードしようとすると、このエラーが発生することです。

リモート サーバーがエラーを返しました: (403) 許可されていません。

すべてのデプロイ ファイルは、あるホストから別のホストにコピー アンド ペーストされます。ホストの構造と構成はまったく同じです (前に述べたように、それは正確なインスタンスです)。

どなたかアイデアがあればよろしくお願いします。この質問を投稿する場所が間違っていたら、もう一度申し訳ありません。

ありがとう

アップデート

YouTube dll を現在のバージョンに更新したところ、次のメッセージが表示されました。

無効な資格情報

奇妙なことに、このメッセージは特定の youtube/google アカウントでのみ表示されます。他のすべてのアカウントで、ビデオが正しくアップロードされるようにします。

ひょっとしたら、アカウントに問題があるのでしょうか?

4

2 に答える 2

0

「403 Forbidden 応答の HTTP 本文には、エラーの XML 記述とその具体的な原因が含まれている必要があります。」

HttpWebRequest を使用していると仮定します。WebException.Responseを使用して本文を取得し、xml 応答をログに記録します。

try
{
    var http = (HttpWebRequest)WebRequest.Create("youtube api");
    using (var resp = http.GetResponse())
    {
        //Handle api response
    }
}
catch (WebException we)
{
    if (we.Response == null)
        throw; //Rethrow because it doesn't have a body.

    var resp = (HttpWebResponse)we.Response;
    if (resp.StatusCode != HttpStatusCode.Forbidden)
        throw; //We are only handling forbidden, rethrow other statuses.

    using (var sr = new StreamReader(resp.GetResponseStream()))
    {
        var xml = sr.ReadToEnd();
        //Log xml here
    } 
}
于 2012-06-09T10:02:15.027 に答える
0

さて、私は問題が何であるかを理解しました。

Amazon サーバーから youtube に手動でログインしようとしたところ、驚いたことにキャプチャ入力が要求されました。

キャプチャを入力した後、すべてがうまくいきました!

于 2012-06-21T09:54:45.330 に答える