2016-01-19 2 views
0

Как вставить данные в очереди тянуть с использованием REST API (PHP-код) на GAEКак вставить данные в очереди тянуть с использованием REST API (PHP-код) на GAE

Я следую ссылке ниже https://cloud.google.com/appengine/docs/python/taskqueue/rest/tasks/insert Мой код

$target_url = 'https://content.googleapis.com/taskqueue/v1beta2/projects/s~<projectname>/taskqueues/<task_queue_name>/tasks?key=<Server key >&alt=json'; 
$post = array('queueName' => '<task_queue_name>', 'payloadBase64'=>'aGVsbG8='); 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL,$target_url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, 
      $post); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$server_output = curl_exec ($ch); 
print_r($server_output); 
curl_close ($ch); 

Но я не могу вставить данные в очереди тянуть, пожалуйста, помогите мне

Я также настроить queue.yaml и установить здесь ACL

Результат

{ "Ошибка": { "ошибка": [{ "Домен": "глобальная", "причина": "требуется", "сообщение" : "Войти Обязательно", «locationType «: "заголовок", "место": "Авторизация"}], "код": 401, "сообщение": "Войти Обязательно"}}

ответ

1

согласно вам другой билет, дать этот водоворот:

https://github.com/tomwalder/php-appengine-pull-queue

Устраняет необходимость в REST API из PHP в App Engine.

Том

+0

вау ... это работает – Zisu

+0

Нет проблем! Дайте мне знать, если у вас возникнут проблемы. – Tom

+0

Могу ли я использовать эту библиотеку на постоянной основе ???? – Zisu

0

TL; DR - Вам не нужно делать HTTP вызовы с CURL вручную, вы должны использовать API Client Library, предоставляемый Google, так как он берет на себя весь Иденте вещи для вас.

Тип авторизации, используемый с API-интерфейсом задач (как и большинство API-интерфейсов Google Cloud Platform), - это OAuth2. Это требует отправки заголовка «Authorization: Bearer» с запросом и не отправки ключа сервера вместе с строкой запроса, как вы это делаете. Из того же документа, с которым вы связались, вы можете использовать «Попробовать!». чтобы увидеть, как выглядит полный HTTP-запрос с помощью OAuth2.

Однако рекомендуемым способом взаимодействия с API Google является использование предоставленного API Client Library for PHP, который позаботится обо всех материалах авторизации для вас. Если вы хотите узнать подробные сведения, вы можете прочитать об этом в Using OAuth 2.0 to Access Google APIs, который содержит примеры для разных типов приложений с использованием PHP и необработанного HTTP.

Следующие непроверенный фрагмент показывает, как вставить задачу с клиентской библиотекой с использованием учетной записи службы с OAuth2 может выглядеть следующим образом:

$client = new Google_Client(); 
$client->setScopes(['https://www.googleapis.com/auth/taskqueue']); 
$client->setAuthConfig($credentials_file); // This is your service account JSON key you need to export from the Developers Console 

$service = new Google_Service_Taskqueue($client); 
$results = $service->insert(opts...) 
Смежные вопросы