/// <summary> /// Subscribe page feed /// </summary> /// <param name="sourceInfoJson">source info has all the information of the page</param> /// <returns>Whether subscribed or not</returns> public override async Task <bool> Subscribe(string sourceInfoJson) { SourceInfoFB sourceInfo = JsonConvert.DeserializeObject <SourceInfoFB>(sourceInfoJson); Dictionary <string, string> queryParams = new Dictionary <string, string>(); queryParams.Add(this.accessTokenParam, sourceInfo.AccessToken); SubscribeWebhookResponseFB response = await this.Client.PostRequestAsync <Dictionary <string, string>, SubscribeWebhookResponseFB>(sourceInfo.PageId + "/subscribed_apps", null, queryParams, new CancellationTokenSource().Token); if (response != null && response.Success == true) { return(true); } Trace.TraceError("Subscription failed for page id {0}", sourceInfo.PageId); throw new Exception("Internal Server Error"); }
public override async Task <bool> Unsubscribe(string sourceInfoJson) { SourceInfoFB sourceInfo = JsonConvert.DeserializeObject <SourceInfoFB>(sourceInfoJson); Dictionary <string, string> queryParams = new Dictionary <string, string>(); queryParams.Add(this.accessTokenParam, sourceInfo.AccessToken); try { SubscribeWebhookResponseFB response = await this.Client.DeleteRequestAsync <SubscribeWebhookResponseFB>(sourceInfo.PageId + "/subscribed_apps", queryParams, new CancellationTokenSource().Token); if (response != null && response.Success == true) { return(true); } } catch (Exception e) { Trace.TraceError($"Failed to unsubscribe. Exception occured: {e.Message}, {e.StackTrace}"); } Trace.TraceError("UnSubscribe failed for page id {0}", sourceInfo.PageId); return(false); }