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":"Mb4ct186TYH8xenS4gFbndH9U7LDUBM3$$jH1gcVCZvo8x3UkDqc697WQYh6UZHS5r","refresh_token":"Mb4ct186TYH8xenS4gFbndH9U7LDUBM3$$onilyczX8cHo1mRr5iWdRfPad2mRax9H6x3ord89","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: Mb4ct186TYH8xenS4gFb... Test 2: SimpleShareFileAPI Simulation ===================================== Response: ========= HTTP Code: 200 Response Body: {"access_token":"wUir5JF21Hn98xcNX8V6AfrJXDIo483l$$6xuQf0YnOESMzDajwYMOr8mx5k7LYZL3","refresh_token":"wUir5JF21Hn98xcNX8V6AfrJXDIo483l$$C9rF4wz1GDtffQOdh3l0lHmOG99jl48HumxTPCuK","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: wUir5JF21Hn98xcNX8V6... 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