public static async Task <string> GetFacebookProfileName(string accessToken) { var uri = GetUri("https://graph.facebook.com/v2.9/me", ("fields", "id,name"), ("access_token", accessToken)); var res = await FacebookRequest <FacebookProfile>(uri); return(res.Name); }
public static async Task <bool> ValidateAccessToken(string accessToken) { var uri = GetUri("https://graph.facebook.com/debug_token", ("input_token", accessToken), ("access_token", $"{FacebookAppId}|{FacebookAppSecret}")); var res = await FacebookRequest <object>(uri).ConfigureAwait(false); return((((dynamic)res)?.data)?.is_valid); }
private static string GetOAuthCallBack(ConversationReference conversationReference, string facebookOauthCallback) { var uri = GetUri(facebookOauthCallback, ("userId", TokenEncoder(conversationReference.User.Id)), ("botId", TokenEncoder(conversationReference.Bot.Id)), ("conversationId", TokenEncoder(conversationReference.Conversation.Id)), ("serviceUrl", TokenEncoder(conversationReference.ServiceUrl)), ("channelId", conversationReference.ChannelId) ); return(uri.ToString()); }
public async static Task <FacebookAcessToken> ExchangeCodeForAccessToken(ConversationReference conversationReference, string code, string facebookOauthCallback) { var redirectUri = GetOAuthCallBack(conversationReference, facebookOauthCallback); var uri = GetUri("https://graph.facebook.com/v2.9/oauth/access_token", ("client_id", FacebookAppId), ("redirect_uri", redirectUri), ("client_secret", FacebookAppSecret), ("code", code) ); return(await FacebookRequest <FacebookAcessToken>(uri)); }
public static string GetFacebookLoginURL(ConversationReference conversationReference, string facebookOauthCallback) { var redirectUri = GetOAuthCallBack(conversationReference, facebookOauthCallback); var uri = GetUri("https://www.facebook.com/v2.9/dialog/oauth", ("client_id", FacebookAppId), ("redirect_uri", redirectUri), ("response_type", "code"), ("scope", "public_profile,email"), ("state", Convert.ToString(new Random().Next(9999))) ); return(uri.ToString()); }