Создать токен доступа oauth 2 в приложении android - PullRequest
0 голосов
/ 19 июня 2020

Я разрабатываю приложение 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...