2013-05-23 2 views
3

Ищите помощь. Я прошел через всю документацию, SO и Google и до сих пор не повезло.API календаря Google и C# - 403 Запрещено

Я пытаюсь интегрироваться с Google Calendar API в своем веб-приложении для функции «Проверить доступность». В настоящее время я нахожусь в самом зацеплении, и самое дальнее, что у меня есть, просто пытается аутентифицировать и вытащить некоторые данные. Я включил свой код ниже - все, что я получаю, - 403 Запрещено ошибок после выполнения всех рекомендаций, которые я видел.

Может ли кто-нибудь определить место, где я ошибаюсь?

public void Page_Load(object sender, EventArgs e) 
{ 
    // Register the authenticator. The Client ID and secret have to be copied from the API Access 
    // tab on the Google APIs Console. 
    var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description); 
    provider.ClientIdentifier = "MY_CLIENT_ID"; 
    provider.ClientSecret = "MY_SECRET"; 

    var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthentication); 

    // Create the service. 
    var service = new CalendarService(new BaseClientService.Initializer 
    { 
     Authenticator = auth 
    }); 

    EventsResource.ListRequest req = service.Events.List("primary"); 

    if (req != null) 
    { 
     var events = req.Fetch(); 

     if (events != null) 
     { 
      litResult.Text = events.Items.Count().ToString(); 
     } 
     else 
     { 
      litResult.Text = "Zilch."; 
     } 
    } 
    else 
    { 
     litResult.Text = "Nada."; 
    } 
} 

private static IAuthorizationState GetAuthentication(NativeApplicationClient arg) 
{ 
    // Get the auth URL: 
    IAuthorizationState state = new AuthorizationState(new[] { "https://www.google.com/calendar/feeds" }); 
    state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl); 
    Uri authUri = arg.RequestUserAuthorization(state); 

    // Request authorization from the user (by opening a browser window): 
    Process.Start(authUri.ToString()); 
    Console.Write(" Authorization Code: "); 
    string authCode = Console.ReadLine(); 
    Console.WriteLine(); 

    // Retrieve the access token by using the authorization code: 
    return arg.ProcessUserAuthorization(authCode, state); 
} 

ответ

0

Я думаю, где у вас есть:

provider.ClientIdentifier = "MY_CLIENT_ID"; 
provider.ClientSecret = "MY_SECRET"; 

Вам действительно нужно, чтобы заполнить его с идентификатором клиента и секретом, указанный на странице API Console ...

+1

Спасибо за слова мудрости ... Я закончил возвращаться к Calendar API v2; если он работает через 10 минут. – CraigA

Смежные вопросы