Я написал облачную функцию Google (триггер HTTP).Он успешно тестируется в облачном интерфейсе Google.Теперь мне нужно позвонить из Unity Game (ядро C # .Net).
Сначала я попытался запустить его из браузера.Я взял URL, показанный в интерфейсе облачной функции Google.Это не работает.Я не получаю журнал стекового драйвера (он даже не попадает в URL?).Это потому, что для этого нужен токен oauth 2.0?
Я создаю запрос 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, так как я взял из интерфейса облачной функции.Пожалуйста, предложите, как мне поступить.Спасибо.