Я разрабатываю приложение android, которое выполняет вызов приложения Google Apps Script Web, доступный только из домена моей компании. Скрипт вставляет данные в таблицу Google.
Чтобы все работало, я создал токен доступа, используя https://developers.google.com/oauthplayground/ с областью действия https://www.googleapis.com/auth/drive и поместив токен напрямую вручную в коде приложения.
Очевидно, это не может работать после развертывания, потому что срок действия токена истекает. Я не понимаю, как я могу создавать токены прямо из приложения android, может кто-нибудь знает, как мне помочь?
Ниже кода вызова:
StringRequest stringRequest = new StringRequest(Request.Method.POST, "appscript url",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(ActivityScannedBarcode.this,response,Toast.LENGTH_LONG).show();
Intent intent = new Intent(getApplicationContext(),MainActivity.class);
startActivity(intent);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
//here we pass params
params.put("action","addSeat");
params.put("name",name);
params.put("surname",surname);
params.put("seat",seat);
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError
{
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/x-www-form-urlencoded");
String bearer = "Bearer here i puth access token";
headers.put("Authorization", bearer);
return headers;
}
};
int socketTimeOut = 50000;// 50 seconds
RetryPolicy retryPolicy = new DefaultRetryPolicy(socketTimeOut, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
stringRequest.setRetryPolicy(retryPolicy);
RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
queue.add(stringRequest);