0

連絡先のインポートと YouTube のアップロードを有効にするために、Web サイトにいくつかの Google API を実装しました。すべてがローカルで (自分の開発サーバーのローカルホストの下で) うまく機能しますが、サイトを介してそれらを使用するといくつかの問題があります (HostGator と 1and1 の両方でホストされ、どこでも同じエラーが発生します) - 認証の問題のようです。

サイトは ASP.NET 2.0 上にあり、これらは私が得るエラーメッセージです:

  1. Google 連絡先のエラー (AuthSub を使用) - これは、Google の authsub からセッション トークンを正常に受信した後に発生します。

    The remote server returned an error: (401) Unauthorized.
    
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information 
    
    about the error and where it originated in the code. 
    
    Exception Details: System.Net.WebException: The remote server returned an error: (401) Unauthorized.
    
    Source Error: 
    
    
    Line 493:        ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default"));
    Line 494:
    Line 495:        ContactsFeed feed = service.Query(query);
    Line 496:
    Line 497:        ArrayList emails = new ArrayList();
    
    Source File: d:\inetpub\vhosts\e-koren.com\httpdocs\home-cooking\EmailInvite.aspx.cs    Line: 495 
    
  2. YouTube 動画のアップロードのエラー (ClientLogin を使用):

    Invalid credentials
    
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information 
    
    about the error and where it originated in the code. 
    
    Exception Details: Google.GData.Client.InvalidCredentialsException: Invalid credentials
    
    Source Error: 
    
    
    Line 71: //            try
    Line 72: //            {
    Line 73:                 FormUploadToken _token = request.CreateFormUploadToken(newVideo);
    Line 74: 
    Line 75:                 actionURL.Value = _token.Url + "?nexturl=" + Server.UrlPathEncode(Request.Url.ToString()+"?uuc=");
    
    Source File: d:\inetpub\vhosts\e-koren.com\httpdocs\home-cooking\youtubeUpload.aspx.cs    Line: 73 
    

誰でもそれが何であるか知っていますか?

ありがとう、アサフ

4

1 に答える 1

0

私は最終的にそれをなんとか愛することができました:

最初のエラー(authsubとgoogleの連絡先)について-URIを「http」から「https」に変更しました。

// V1
GAuthSubRequestFactory authFactory = new GAuthSubRequestFactory("cp",gn.ytApplicationName);

authFactory.Token = (String)Session["token"];

ContactsService service = new ContactsService(authFactory.ApplicationName);

service.RequestFactory = authFactory;

ContactsQuery query = new ContactsQuery(ContactsQuery.CreateContactsUri("default"));

// VERY IMPORTANT! adding HTTPS resolves google's bug (401 error)
query.Uri = new Uri("https://www.google.com/m8/feeds/contacts/default/full");

ContactsFeed feed = service.Query(query);

2番目のエラー(ClientLogin)について-どうやらグーグルはこの種の方法に関するセキュリティ対策を強化しました-彼らは私がログインしたいという警告メールをユーザーに送信します-そして彼がいくつかの複雑なステップに従う場合にのみ彼らは彼へのアクセスを許可しますビデオ。

これはエラーではなくポリシーであることがわかったので、そこでもAuthSubに切り替えるだけだと思います。

私も他の誰かを助けることができるといいのですが...

:)

于 2013-01-02T11:12:43.643 に答える