I want to query information about the logged-in user using me, and this site parameter is creating some small problems.
I am developing a visual studio extension where upon logging in a user will get all his network accounts using /me/associated. After that, on clicking on any of the associated account, he will get more information about the user in that site, eg, stackoverflow, using /me. In this step, there is a parameter site. So how to have the parameter site where the user have accounts, so that I will pass it to /me?
-
The question is a bit unclear. State your ultimate purpose.Brock Adams– Brock Adams2016-02-17 21:19:05 +00:00Commented Feb 17, 2016 at 21:19
1 Answer
RE:
Is
sitetheapi_site_parameterof the site object?
Yes. Although as stated in the "Per-Site Methods" section of the main doc page, you can also use the full domain name, EGcooking.stackexchange.com.No, user and shallow_user are site specific objects. You absolutely need to specify
siteto get these.
Supposedly, the assumption is that all /me routes are site specific -- used by apps that only focus on one domain.
As stated in the "Users" section of the main doc page:
All user methods that take an
{ids}parameter have a/meequivalent method that takes anaccess_tokeninstead.
These methods are provided for developer convenience, with the exception of plain /me, which is actually necessary for discovering which user authenticated to an application.
Buried in 2 or 3 particular doc pages it states:
{These methods are} provided for consumers who make strong assumptions about operating within the context of a single site rather than the Stack Exchange network as a whole.
Where the applicable routes are of the form /users/{id}/{Some SE-wide object} and by implication this would include the /me/{Some SE-wide object} routes.
This certainly should be better documented in the pages where this doesn't make sense (EG: /me,
/me/notifications,
/me/inbox, and
/me/inbox/unread).
And note that other /me/ routes, like /me/associated and /me/merges, do not require a site parameter.
What is your true purpose?
The question is unclear.
To get the user's Stack Exchange-wide id, use the
/access-tokens/{accessTokens}route:"account_id": 131474, "expires_on_date": 1455815636, "access_token": "3OT6bxxxxxxxxxxqPMZK9Q))"To get all of the user's associated accounts, use the
/me/associatedroute:{ "user_id": 331508, "site_name": "Stack Overflow" }, { "user_id": 55814, "site_name": "Server Fault" }, { "user_id": 41023, "site_name": "Super User" }, etc.
-
Your 2 points answered my question. Sending full domain name like "stackoverflow.com" which is returned as
site_urlfrom /me/associated solved my problem. Thanks.amit jha– amit jha2016-02-18 06:54:21 +00:00Commented Feb 18, 2016 at 6:54