Detailed ShareFile Authentication Debug ===================================== Configuration: ============== Subdomain: cazarin Client ID: CwOHHD06vOwW4QlxPEYH4GULOhgoZLAw Client Secret: l1ua****Zjjk Username: david@cazarin.com Password: ******************* Test 1: Direct Authentication (like oauth_password_grant.php) ============================================================ URL: https://cazarin.sharefile.com/oauth/token Data: grant_type=password&username=david%40cazarin.com&password=if3w+ynzy+pfgx+i4dg&client_id=CwOHHD06vOwW4QlxPEYH4GULOhgoZLAw&client_secret=l1ua69h2mLoVmzgasRxq8H0F7SPXJedDYAqifLPFbLJkZjjk Response: ========= HTTP Code: 200 Response Body: {"access_token":"V7vOE7wx0aK3IiA4n4QxaMMu3T67WqBV$$y8gGgCkO4fyGqJCCSkHvYRbMojFmdRrO","refresh_token":"V7vOE7wx0aK3IiA4n4QxaMMu3T67WqBV$$2sKxGpuZEJPnirQpf2pQBNATmDO1UWHk5Vhy5I4E","token_type":"bearer","expires_in":28800,"appcp":"sharefile.com","apicp":"sf-api.com","subdomain":"cazarin","access_files_folders":true,"modify_files_folders":true,"admin_users":true,"admin_accounts":true,"change_my_settings":true,"web_app_login":true} ✅ Test 1 SUCCESS: Direct authentication works! Token: V7vOE7wx0aK3IiA4n4Qx... Test 2: SimpleShareFileAPI Simulation ===================================== Response: ========= HTTP Code: 200 Response Body: {"access_token":"mnX6pNHirA8QymR1AH5zeYuG0NWo3T5W$$66ohEZGaq27y7GV6Vqe6YH9n8GJK1FHg","refresh_token":"mnX6pNHirA8QymR1AH5zeYuG0NWo3T5W$$hNw1bjGz0vzcltzZuZljttpvRCY8UW0Kbfo7sMx6","token_type":"bearer","expires_in":28800,"appcp":"sharefile.com","apicp":"sf-api.com","subdomain":"cazarin","access_files_folders":true,"modify_files_folders":true,"admin_users":true,"admin_accounts":true,"change_my_settings":true,"web_app_login":true} ✅ Test 2 SUCCESS: SimpleShareFileAPI simulation works! Token: mnX6pNHirA8QymR1AH5z... Test 3: SimpleShareFileAPI Class Loading ======================================== ✅ SimpleShareFileAPI.php loaded successfully ✅ SimpleShareFileAPI instantiated successfully Analysis: ========= If Test 1 works but Test 2 fails: There's a difference in the request format If Test 2 works but Test 3 fails: There's an issue with the class implementation If all tests fail: There's a fundamental authentication issue If all tests pass: The issue might be elsewhere in the connector