インストールされたアプリケーションの OAuth を自分のコードで動作させようとしていますが、実際にはほとんど成功していません...
コードは次のとおりです。
GOAuthRequestFactory factory = new GOAuthRequestFactory("cl", "MyApp");
factory.ConsumerKey = "anonymous";
factory.ConsumerSecret = "anonymous";
// example of performing a query (use OAuthUri or query.OAuthRequestorId)
Uri calendarUri = new OAuthUri("http://www.google.com/calendar/feeds/default/owncalendars/full", "firstname.lastname", "gmail.com");
CalendarQuery query = new CalendarQuery();
query.Uri = calendarUri;
factory.AccountType = "GOOGLE";
factory.MethodOverride = true;
Console.WriteLine("Setting up proxy");
IWebProxy iProxy = WebRequest.DefaultWebProxy;
WebProxy myProxy = new WebProxy(iProxy.GetProxy(query.Uri));
// potentially, setup credentials on the proxy here
myProxy.Credentials = CredentialCache.DefaultCredentials;
myProxy.UseDefaultCredentials = true;
factory.Proxy = myProxy;
CalendarService service = new CalendarService("MyApp");
service.RequestFactory = factory;
service.Query(query);
最後の行で、例外が発生します。
{"Execution of request failed: http://www.google.com/calendar/feeds/default/owncalendars/full?xoauth_requestor_id=firstname.lastname@gmail.com"}
サーバーは以下を返します。
Token invalid - Invalid AuthSub token.
アイデアのある人はいますか?
私は実際には OAuth にあまり縛られていませんが、ClientLogin は何らかの理由で今日の朝に機能していました...とにかく、ユーザーが自分のアプリケーションに資格情報を提供する必要がない場合は気分が良くなります。
どんなに単純であっても、最善の例は - 動作する - 例です:)
ネットのどこかで、OAuth を使用した .NET は GData 1.4.0.2 (現在のバージョン) ではうまく機能せず、実験的な 1.5.0.0 ではうまく機能していることを読みましたが、実験版をダウンロードする場所:(
前もって感謝します!