Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
339 views
in Technique[技术] by (71.8m points)

azure - Unable to edit word document online using o365 MS Graph API getPreviewLinkWithEdit

Using o365 MS Graph API to edit word document online. https://docs.microsoft.com/en-us/graph/api/driveitem-preview?view=graph-rest-beta This feature was working till 22nd JAN 2021. We are not able to edit document online from 27th JAN.

Code:

public static String getPreviewLinkWithEdit(String itemId, InlineEditorConfig config, boolean editFlag) throws JSONException {
        RestTemplate restTemplate = new RestTemplate();

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.add(AUTHORIZATION, BEARER + config.getAccessToken());
        
        String test = TEST;
        
        if (!editFlag) {
            test = TEST_WITHOUT_EDIT;
        }

        HttpEntity<String> request = new HttpEntity<>(test, headers);

        ResponseEntity<String> response = restTemplate.exchange(HTTPS_GRAPH_BASE_URL_BETA + itemId + PREVIEW,
                HttpMethod.POST, request, String.class);
        return (null != response.getBody()
                && null != new JSONObject(response.getBody()).getString(GET_URL_STRING)
                        ? new JSONObject(response.getBody()).getString(GET_URL_STRING)
                        : "");
    }

Displaying the MS Word web URL in iframe:

<iframe id="imagepgframe" src="https://purushothamchowdary-my.sharepoint.com/personal/purushotham_purushothamchowdary_onmicrosoft_com/_layouts/15/PreAuth.aspx?sourcedoc={289e7b7a-e5d3-43dc-957a-5564ca9faeb9}&action=edit#access_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IkcydDJKYzlkMVZ6RkdjdzZUZy02YUhZVXk2VSJ9%2EeyJhdWQiOiJ3b3BpL3B1cnVzaG90aGFtY2hvd2RhcnktbXkuc2hhcmVwb2ludC5jb21AZTZmMjQ4NWYtYTY4My00MzZlLThmZmEtMWQ3OWVkMjFmYWQwIiwiaXNzIjoiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwQDkwMTQwMTIyLTg1MTYtMTFlMS04ZWZmLTQ5MzA0OTI0MDE5YiIsIm5iZiI6IjE2MTE5MDM0NDQiLCJleHAiOiIxNjExOTAzNzQ0IiwibmFtZWlkIjoiMTAwMzIwMDEwYTNiNGM0MyIsIm5paSI6InVybjpmZWRlcmF0aW9uOm1pY3Jvc29mdG9ubGluZSIsImNhY2hla2V5IjoiMGguZnxtZW1iZXJzaGlwfDEwMDMyMDAxMGEzYjRjNDNAbGl2ZS5jb20iLCJpc3VzZXIiOiJ0cnVlIiwiYWNycyI6IltcInVybjp1c2VyOnJlZ2lzdGVyc2VjdXJpdHlpbmZvXCIsXCJ1cm46bWljcm9zb2Z0OnJlcTFcIixcInVybjptaWNyb3NvZnQ6cmVxMlwiLFwidXJuOm1pY3Jvc29mdDpyZXEzXCIsXCJjMVwiLFwiYzJcIixcImMzXCIsXCJjNFwiLFwiYzVcIixcImM2XCIsXCJjN1wiLFwiYzhcIixcImM5XCIsXCJjMTBcIixcImMxMVwiLFwiYzEyXCIsXCJjMTNcIixcImMxNFwiLFwiYzE1XCIsXCJjMTZcIixcImMxN1wiLFwiYzE4XCIsXCJjMTlcIixcImMyMFwiLFwiYzIxXCIsXCJjMjJcIixcImMyM1wiLFwiYzI0XCIsXCJjMjVcIl0iLCJhcHBpZCI6IjNhODhmMmUzLTY4NjktNDA4YS1hZTAzLTE2YjQ0OTdlMWQxNyIsInRpZCI6ImU2ZjI0ODVmLWE2ODMtNDM2ZS04ZmZhLTFkNzllZDIxZmFkMCIsImlwYWRkciI6IjE1Ny40MS4xNDIuMTQ2Iiwid29waV9hcCI6ImFsbGZpbGVzLndyaXRlIiwid29waV90dCI6IlByZUF1dGhUb2tlbiIsImFwcGN0eCI6IjI4OWU3YjdhZTVkMzQzZGM5NTdhNTU2NGNhOWZhZWI5O3ZYam1GZUVqbHNqeE0xWnkzMU9mRVZpSkFFMD07RGVmYXVsdDs7MTAyQjAzQzIzOTJFRjtUcnVlOzszYTg4ZjJlMy02ODY5LTQwOGEtYWUwMy0xNmI0NDk3ZTFkMTc7Njg7YjJmZWY4MTYtMTE4YS00N2I4LWFlMTItMTA2NzJhMDA2ZGRiIn0%2EOjcVqrRRrFrG6YNacnl2h32Hd1exc30YMGhrTdhJ2nSxhciaYqrMWkhLUMz7hDxyONMtgHVUzBty%2DNP2WUtDibf%2DKzOCTTW9aF01ytp%5FQTqIikpdDLUkyXQwDuJQzKuZh8vjxSXF5jfYtoK7JyqUNXZfllozebrqXe80arK%2DTNvvqAk3tOqF5yBedEYW0KrIIyFlyPNXNMyxdGBNEvRjMpMBqzE0Pn3wBiWeh6q4Bx8qSCYE9HwObPDUNtw%2DtCZh%2DFx6suS%5F3kuntWjyxKOqYRfYWpt%5FrWwFCxbFvWwThG5JcT1RUWHi0vdvA9%2DVGn%5FMUqxuKr9BQjUaQC9SFIhaMw"></iframe>

The word document file is getting uploaded to OneDrive. In application getting the web URL to open the word document in browser. The application java code works fine without giving any error .

Preview Link :

https://graph.microsoft.com/beta/me/drive/items/01ZPAXLBD2POPCRU7F3RBZK6SVMTFJ7LVZ/preview

In iframe bellow error getting displayed:

Error in iframe mapped to web URL of word document

enter image description here

Error in browser console:

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://word-edit.officeapps.live.com') does not match the recipient window's origin ('https://sheethaljav-my.sharepoint.com').

enter image description here

Cookie:

enter image description here

question from:https://stackoverflow.com/questions/65932653/unable-to-edit-word-document-online-using-o365-ms-graph-api-getpreviewlinkwithed

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Upon your description, there's no error message in your java code, so maybe you can debug your code to get the real 'GET_URL_STRING' to check if it has got the correct link url.

And I have test the api in api test tool, with ropc flow to get an access token and then calling 'https://graph.microsoft.com/beta/me/drive/items/【itemid】/preview'(according to your code, I assumed you're using this one) and I got the error of 'notAllowed', then I delete the suffix '/preview' and it replied with the url. So could you pls add more details on your debug result?

enter image description here enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...