25/01/2023
I’ve mentioned a couple of times that I’ve been playing with ChatGTP to assist with a piece of development work I’m doing.
Today, I validated a new piece of code it presented me with, which looked great and was exactly what I wanted but completely wrong.
I asked it
How do I move a SharePoint folder using Microsoft Graph API in python?
It replied (initially with the correct answer)
import json
import requests
folder_id = "123"
new_parent_id = "456"
url = f"https://graph.microsoft.com/v1.0/drive/items/{folder_id}"
headers = {
"Authorization": "Bearer your_access_token",
"Content-Type": "application/json"
}
data = {
"parentReference": {
"id": new_parent_id
}
}
response = requests.patch(url, headers=headers, json=data)
if response.status_code == 200:
print("Folder moved successfully.")
else:
print(f"Error moving folder: {response.json()}")
Then I asked Can I move a folder using a path rather than IDs
Where it replied as follows
Yes, it is possible to move a folder in SharePoint using a path rather than IDs using the Microsoft Graph API.
You can use the Move
API to move the folder by passing the path of the folder and the new parent folder.
Here is an example of how you can use the requests
library to move a folder located at “path/to/folder” to a new parent folder located at “path/to/newparentfolder” :
and supplied the following code
import json
import requests
folder_path = "path/to/folder"
new_parent_path = "path/to/newparentfolder"
url = f"https://graph.microsoft.com/v1.0/drive/root:/{folder_path}:/move"
headers = {
"Authorization": "Bearer your_access_token",
"Content-Type": "application/json"
}
data = {
"destination": {
"path": new_parent_path
}
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
print("Folder moved successfully.")
else:
print(f"Error moving folder: {response.json()}")
Unfortunately, this code is not correct! In fact, the official Microsoft Graph API Documentation for the Move method says
Request body
In the request body, supply the new value for the parentReference property. Existing properties that are not included in the request body will maintain their previous values or be recalculated based on changes to other property values. For best performance you shouldn’t include existing values that haven’t changed.
Note: When moving items to the root of a drive, your app cannot use the "id:" "root"
syntax. Your app needs to provide the actual ID of the root folder for the parent reference.
Truthfully I’m gutted the code didn’t work because it would have made my life simpler, but it highlights a key consideration when using Generative AI.
You always need to check the output, whether it’s facts, grammar or code. These systems are not full-proof, and it’s incumbent on you to use your critical thinking skills to validate the information you’ve been given. No matter how reasonable it sounds.
One thought on “68: Generative AI you need to check its working outs”