Здравствуйте.
Пишу приложение на языке Google Apps Script. В данном приложение хочу использовать API ВКонтакте. Чтобы взаимодействовать с API ВКонтакте из приложения на языке Google Apps Script, добавила в среду разработки библиотеку OAuth2. Ссылка на библиотеку
OAuth2. Сделала все, как описано в документации по ссылки. Сам код работает, но ссылка которая формируется для параметра redirect_uri нерабочая. То есть, если по ней перейти, Google пишет, что файл не найдет. Вконтакте также при авторизации через OAuth2 возвращает ошибку, что redirect_uri не найден.
Код скрипта:
var CLIENT_ID = 'client id';
var CLIENT_SECRET = 'client secret';
/**
* Authorizes and makes a request to the VK API.
*/
function run() {
var service = getService();
if (service.hasAccess()) {
// GET requests require access_token parameter
var url = 'https://api.vk.com/method/users.get?fields=first_name,last_name&access_token=' + service.getAccessToken();
var response = UrlFetchApp.fetch(url);
// note: add 'email' to the fields= list above in order to
// fetch email from token (+uncomment 2 lines below)
// var email = service.getToken().email;
// Logger.log('email: '+email);
var result = JSON.parse(response.getContentText());
Logger.log(JSON.stringify(result, null, 2));
} else {
var authorizationUrl = service.getAuthorizationUrl();
Logger.log('Open the following URL and re-run the script: %s',
authorizationUrl);
}
}
/**
* Reset the authorization state, so that it can be re-tested.
*/
function reset() {
getService().reset();
}
/**
* Configures the service.
*/
function getService() {
return OAuth2.createService('VK')
// Set the endpoint URLs.
.setAuthorizationBaseUrl('https://oauth.vk.com/authorize')
.setTokenUrl('https://oauth.vk.com/access_token')
// Set the client ID and secret.
.setClientId(CLIENT_ID)
.setClientSecret(CLIENT_SECRET)
// Set the name of the callback function that should be invoked to
// complete the OAuth flow.
.setCallbackFunction('authCallback')
// Set the property store where authorized tokens should be persisted.
.setPropertyStore(PropertiesService.getUserProperties())
// Set the scope and additional specific parameters if its are supported
.setScope('email,groups,offline');
}
/**
* Handles the OAuth callback.
*/
function authCallback(request) {
var service = getService();
var authorized = service.handleCallback(request);
if (authorized) {
return HtmlService.createHtmlOutput('Success!');
} else {
return HtmlService.createHtmlOutput('Denied.');
}
}
/**
* Logs the redict URI to register in the VK Aps Page https://vk.com/apps?act=manage.
*/
function logRedirectUri() {
Logger.log(OAuth2.getRedirectUri());
}
Чтобы получить URL для redirect_uri, можно просто выполнить функцию
logRedirectUri.
Может, кто подскажет, что я делаю не так? И что нужно сделать, чтобы возвращаемый URL для redirect_uri был рабочим при обращение?