Как вызвать элемент списка в SharePoint, используя REST API в Android? - PullRequest
0 голосов
/ 19 апреля 2019

Я хочу использовать API-интерфейс rest point point для вызова из Android ранее, я использую для вызова веб-службы share point через API-интерфейс graph, но при генерации токена из API-интерфейса graph он не поддерживается в приведенном ниже URL-адресе.Решение об этой проблеме.

https://mysharepoint.sharepoint.com/sites/MySite/_api/web/lists/getbytitle('Announcements')/Items

 JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, MSGRAPH_URL,
            parameters,new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            /* Successfully called graph, process data and send to UI */
            Log.d(TAG, "Response: " + response.toString());


            updateGraphUI(response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d(TAG, "Error: " + error.toString());
        }
    }) {
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> headers = new HashMap<>();
            headers.put("Authorization", "Bearer " + authResult.getAccessToken());
            return headers;
        }
    };

    Log.d(TAG, "Adding HTTP GET to Queue, Request: " + request.toString());

    request.setRetryPolicy(new DefaultRetryPolicy(
            3000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    queue.add(request);

Я уже пробовал использовать библиотеку MSAL, но она не работает с этим токеном. Обновление : я использовал для вызова API api для определения токена, но получил 401 ошибку с указанным выше URL.

1 Ответ

0 голосов
/ 24 апреля 2019

Вы вызываете API SharePoint, поэтому вам понадобится токен SharePoint вместо токена Graph.Это два отдельных API с разными аутентификациями.

Чтобы получить токен SharePoint, вам необходимо зарегистрировать приложение в самом SharePoint или использовать имя пользователя + пароль пользователя, если они доступны в вашем приложении.

См. Также: https://spshell.blogspot.com/2015/03/sharepoint-online-o365-oauth.html https://shareyourpoint.net/2017/01/25/operations-using-rest-in-sharepoint-online-authorization/

Для Graph используйте URL-адрес, подобный следующему, чтобы получить элементы списка:

https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items?expand=fields(select=Column1,Column2)

Возможно, вам потребуется сделать несколькозвонки, чтобы получить идентификатор вашего сайта и список ID в первую очередь.

https://docs.microsoft.com/en-us/graph/api/listitem-list?view=graph-rest-1.0

...