The Directory API is restricted for Google Apps Admin only. It allows domain administrators to retrieve domain users' information.
You should be able to get user information from your own domain (and your own domain ONLY). In your case, you are trying to get the user information of 'william.nelson920@gmail.com'. Since gmail.com is a consumer Google Apps product, and I don't think you are the administrator of gmail.com? The API is throwing the correct error indicating that this user does not exist in your domain.
Here is more info about the get request from Google documentation
https://developers.google.com/admin-sdk/directory/v1/guides/manage-users#get_user
Hope this helps!