Облачные функции Google: все критерии для вызова Http-запущенных облачных функций из внешнего облачного проекта (браузер или клиент c #) - PullRequest
0 голосов
/ 01 мая 2019

Я написал облачную функцию Google (триггер HTTP).Он успешно тестируется в облачном интерфейсе Google.Теперь мне нужно позвонить из Unity Game (ядро C # .Net).

  1. Сначала я попытался запустить его из браузера.Я взял URL, показанный в интерфейсе облачной функции Google.Это не работает.Я не получаю журнал стекового драйвера (он даже не попадает в URL?).Это потому, что для этого нужен токен oauth 2.0?

  2. Я создаю запрос Http, встраивая JSON

    request.ContentType = "application/json";
    request.Method = "POST";
    request.Headers["Authorization"] = "Bearer " + token;
    //token obtained from oauth 2.0 JWT call
    byte[] JsonContentBytes = Encoding.UTF8.GetBytes(strjsonReqContent);
    // my Json object. requestJSON.ToString());
    request.ContentLength = JsonContentBytes.Length;
    

Здесь я также пытался использовать токен Oauth 2.0.(Он работает для API хранилища. Моя учетная запись службы для облачной функции имеет доступ к редактору проекта)

Я видел один пост об использовании облачной функции извне облачного проекта.Это не решило мою проблему.

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

EDIT1:

Спасибо за предложение.Вот журнал выполнения Curl.Я не привык к веб-отладке.Пожалуйста, предложите, что я должен проверить дальше.Я мог бы понять, что это «Плохой запрос».URL-адрес, который я выбрал из консоли облачной функции.

>curl -v -X POST https://us-central1- myproject.cloudfunctions.net/myfunctiontest -H "Content-Type:application/json"  -d '{"username":"myemail@mydomain.com","password":"password1"}'
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 172.217.163.174...
* TCP_NODELAY set
* Connected to us-central1-myproject.cloudfunctions.net (172.217.163.174) port 443 (#0)
* schannel: SSL/TLS connection with us-central1-myproject.cloudfunctions.net port 443 (step 1/3)
* schannel: checking server certificate revocation
* schannel: sending initial handshake data: sending 212 bytes...
* schannel: sent initial handshake data: sent 212 bytes
* schannel: SSL/TLS connection with us-central1-myproject.cloudfunctions.net port 443 (step 2/3)
* schannel: failed to receive handshake, need more data
* schannel: SSL/TLS connection with us-central1-myproject.cloudfunctions.net port 443 (step 2/3)
* schannel: encrypted data got 4096
* schannel: encrypted data buffer: offset 4096 length 4096
* schannel: encrypted data length: 4028
* schannel: encrypted data buffer: offset 4028 length 4096
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with us-central1-myproject.cloudfunctions.net port 443 (step 2/3)
* schannel: encrypted data got 1024
* schannel: encrypted data buffer: offset 5052 length 5052
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with us-central1-myproject.cloudfunctions.net port 443 (step 2/3)
* schannel: encrypted data got 1024
* schannel: encrypted data buffer: offset 6076 length 6076
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with us-central1-myproject.cloudfunctions.net port 443 (step 2/3)
* schannel: encrypted data got 1024
* schannel: encrypted data buffer: offset 7100 length 7100
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with us-central1-myproject.cloudfunctions.net port 443 (step 2/3)
* schannel: encrypted data got 1024
* schannel: encrypted data buffer: offset 8124 length 8124
* schannel: received incomplete message, need more data
* schannel: SSL/TLS connection with us-central1-myproject.cloudfunctions.net port 443 (step 2/3)
* schannel: encrypted data got 317
* schannel: encrypted data buffer: offset 8441 length 9148
* schannel: sending next handshake data: sending 93 bytes...
* schannel: SSL/TLS connection with us-central1-myproject.cloudfunctions.net port 443 (step 2/3)
* schannel: encrypted data got 284
* schannel: encrypted data buffer: offset 284 length 9148
* schannel: SSL/TLS handshake complete
* schannel: SSL/TLS connection with us-central1-myproject.cloudfunctions.net port 443 (step 3/3)
* schannel: stored credential handle in session cache
> POST /logontest HTTP/1.1
> Host: us-central1-myproject.cloudfunctions.net
> User-Agent: curl/7.55.1
> Accept: */*
> Content-Type:application/json
> Content-Length: 59
>
* upload completely sent off: 59 out of 59 bytes
* schannel: client wants to read 102400 bytes
* schannel: encdata_buffer resized 103424
* schannel: encrypted data buffer: offset 0 length 103424
* schannel: encrypted data got 506
* schannel: encrypted data buffer: offset 506 length 103424
* schannel: decrypted data length: 477
* schannel: decrypted data added: 477
* schannel: decrypted data cached: offset 477 length 102400
* schannel: encrypted data buffer: offset 0 length 103424
* schannel: decrypted data buffer: offset 477 length 102400
* schannel: schannel_recv cleanup
* schannel: decrypted data returned 477
* schannel: decrypted data buffer: offset 0 length 102400
< HTTP/1.1 400 Bad Request
< Content-Type: text/html
< Function-Execution-Id: qyx8g4vv8hn1
< X-Cloud-Trace-Context: 6f8012ea791b4a0f900ac4b84debaf5f;o=1
< Date: Thu, 02 May 2019 13:23:14 GMT
< Server: Google Frontend
< Content-Length: 192
< Alt-Svc: quic=":443"; ma=2592000; v="46,44,43,39"
<
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <title>400 Bad Request</title>
 <h1>Bad Request</h1>
 <p>The browser (or proxy) sent a request that this server could not 
  understand.</p>
 * Connection #0 to host us-central1-myproject.cloudfunctions.net left intact

«Неправильный запрос» может быть не из-за URL, так как я взял из интерфейса облачной функции.Пожалуйста, предложите, как мне поступить.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...