401 Несанкционированная ошибка при попытке использовать функцию публикации PHP cURL в Google Apps Script - PullRequest
0 голосов
/ 27 апреля 2018

При попытке использовать PHP cURL с Google Apps Script появляется сообщение об ошибке "Запрошенный URL-адрес: 401 не авторизован".

Я следовал следующим инструкциям, но ничего не помогло: Как мне опубликовать скрипт Google с cURL на PHP и вернуть текст?
Отправка данных в скрипт приложений Google с помощью php / curl

Я вчера опубликовал этот дополнительный вопрос, который помог мне понять, что мне нужно, чтобы все мои SSL-сертификаты были полностью настроены:
Как использовать Google Scripts с cURL PHP? [Дубликат]

Моя страница test.php:

<div id="body">
    <form name="testing" method="post">
        Email: <input type="text" name="email"><br>
        <input type="submit" value="Submit" onClick="return OnTest1();">
    </form>
</div>

<script>
    function OnTest1()
    {
        document.testing.action = "testsubmit.php";
        document.testing.submit();
        return true;
    }
</script>

Моя страница testsubmit.php:

<?php   
    $url = 'https://script.google.com/a/meditech.com/macros/s/[SCRIPT ID]/exec';
    $data['email'] = $_POST['email'];
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_FAILONERROR,true);

    $result = curl_exec($ch);

    if(curl_error($ch))
    {
        echo curl_error($ch);
    }
    else
    {
        echo $result;
    }

    curl_close($ch);
?>

И мой скрипт Google Apps:

function doPost(e)
{
  return ContentService.createTextOutput(e.parameter.email);
}

Я хочу, чтобы в какой-то момент я мог передать кучу информации на мою php-страницу для обработки в базу данных, которую я настроил, после того как она будет выгружена в базу данных, мне нужно затем отправить всю эту информацию на скрипт Google Apps, чтобы затем отправить электронное письмо.

Спасибо всем, кто может помочь.

1 Ответ

0 голосов
/ 27 апреля 2018

Да, использовать Execute the app as: Myself и Who has access to the app: CompanyDomain.com абсолютно нормально, но в то же время вы должны убедиться, что Google идентифицирует вас, что вы только из CompanyDomain.com. Как ты это делаешь сейчас?

Я думаю, для этого вам нужно передать детали аутентификации с помощью реквизита, может быть, что-то вроде токена OAuth / 2. Сначала получите токен для пользователя, который делает запрос, а затем передайте его в заголовке аутентификации, чтобы Google идентифицировал пользователя.

Или, если вы этого не хотите, вы можете переключиться на Who has access to the app: Anyone, even anonymous, тогда вам не нужно доказывать свою личность.

Выберите, что лучше всего подходит для ваших нужд.

Вы также можете проверить мой ответ здесь Как создать doPost (e) для получения данных от внешнего сервиса?

...