private void facebookClient_PostCompleted(object sender, FacebookApiEventArgs e)
{
Logger.Info("Called");
if (e.Cancelled)
{
Logger.Info("Cancelled");
PublishWorkerResult = PublishWorkerResults.Cancelled;
}
else if (e.Error != null)
{
Logger.Error("Error uploading: " + e.Error);
ErrorMessage = e.Error.ToString();
PublishWorkerResult = PublishWorkerResults.UnableToShare;
}
else
{
/* format:
{
"id": "xxxxx19208xxxxx"
}
*/
string jsonResponse = e.GetResultData().ToString();
Logger.Info("Response from Facebook: " + jsonResponse);
var structuredResponse = (FacebookJSONResponse)facebookClient.DeserializeJson(jsonResponse, typeof(FacebookJSONResponse));
/* This works, but it requires extra assemblies
var ser = new DataContractJsonSerializer(typeof(FacebookJSONResponse));
var stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonResponse));
var structuredResponse = (FacebookJSONResponse)ser.ReadObject(stream);
stream.Close();
*/
Logger.Info("FacebookActivityId = " + structuredResponse.id);
HighlightObject.FacebookActivityId = structuredResponse.id;
PublishWorkerResult = PublishWorkerResults.Success;
}
uploadCompleted = true;
}