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 AdamsCommented Feb 17, 2016 at 21:19
1 Answer
RE:
Is
site
theapi_site_parameter
of 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
site
to 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/me
equivalent method that takes anaccess_token
instead.
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/associated
route:{ "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_url
from /me/associated solved my problem. Thanks.– amit jhaCommented Feb 18, 2016 at 6:54