2013-06-05 2 views
0

Я новичок в App Engine и пытаюсь написать приложение, которое будет получать доступ к Календарю Google, чтобы получить информацию о любых событиях за текущее время. Я изо всех сил пытаюсь понять, как должна работать аутентификация, чтобы разрешить доступ к Календарю. Я считаю, что OAuth2 является предпочтительным вариантом аутентификации, так что я есть client_secrets.json файл с ClientID и Client Secret из проекта API доступа я отдельно созданный:Google App Engine для проверки подлинности календаря

{ 
"web":{ 
"auth_uri":"https://accounts.google.com/o/oauth2/auth", 
"client_secret":"xxxxxxx", 
"token_uri":"https://accounts.google.com/o/oauth2/token", 
"client_email":"[email protected]", 
"redirect_uris":["https://myapp.appspot.com/oauth2callback"], 
"client_x509_cert_url":"https://www.googleapis.com/robot/v1/metadata/x509/[email protected]", 
"client_id":"123456789.apps.googleusercontent.com", 
"auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs", 
"javascript_origins":["https://myapp.appspot.com"] 
} 
} 

Это был прямой экспорт из проекта API доступа, используя параметр «Загрузить JSON». Когда я раскрываю мое приложение App Engine, я получаю сообщение об ошибке:

Error: redirect_uri_mismatch 
The redirect URI in the request: http://myapp.appspot.com/oauth2callback did not match a registered redirect URI 
Learn more 
Request Details 
scope=https://www.googleapis.com/auth/calendar 
response_type=code 
access_type=offline 
redirect_uri=https://myapp.appspot.com/oauth2callback 
display=page 
client_id=123456789.apps.googleusercontent.com 

Все выглядит хорошо для меня, так что я не уверен, что ошибка говорит мне. Мне нужно каким-то образом связать приложение App Engine с проектом API Access. Я пропустил что-то еще фундаментальное.

Если есть дополнительная информация, которая поможет вам разобраться в настройке, пожалуйста, дайте мне знать. Я хотел оставить сообщение маленьким.

ответ

1

Там есть комментарий here, который говорит:

When you created your credentials, you probably indicated that the client credentials you were creating were for a web application instead of an installed application. When you do that, you enter a Redirect URI for that set of credentials. The sample you are using is using the out of band Redirect URI for installed applications which does not match the one you specified, so it will not allow you to compete the authentication flow. This is to protect you from malicious use of your client credentials. Open the APIs console and create a new client ID for "installed applications" instead of "web applications" and this should work.

Вы создали веб-приложение или установленное приложение?

+0

Я пытаюсь настроить веб-приложение на Google App Engine. Что-то еще не так для веб-приложения? Спасибо Джеймсу – James

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