Could you maybe debug it a little, put your credentials directly in the script and check it with different vins? Basically it's just one api call inside the getCarInfo() method. The result of it is already logged on the console (huge json response). I only have one car so I can't double check.
The other day, I already tried everything I could think of. But today the test was even simpler:
1. The widget works for Car A, I confirm it by going in scriptable and run it.
2. I go to hello smart, which is showing Car A and I change to look at Car B
3. I go back to scriptable and run the same script for Car A and it fails with following consol logs
Code
2023-11-18 14:09:09: Found apiAccessToken.
2023-11-18 14:09:09: Signing api request with hmac *********
2023-11-18 14:09:10: status code: 200
2023-11-18 14:09:10: {"data":null,"code":"8160","httpStatus":"OK","success":false,"hint":null,"sessionId":"***********","message":"Currently no permission to operate"}
4. I go back to hello smart and switch to car A
5. The widget works again perfectly