private IList<photo_tag> GetTags(List<string> pids, bool isAsync, GetTagsCallback callback, Object state) { var parameterList = new Dictionary<string, string> {{"method", "facebook.photos.getTags"}}; Utilities.AddList(parameterList, "pids", pids); if (isAsync) { SendRequestAsync<photos_getTags_response, IList<photo_tag>>(parameterList, new FacebookCallCompleted<IList<photo_tag>>(callback), state, "photo_tag"); return null; } var response = SendRequest<photos_getTags_response>(parameterList); return response == null ? null : response.photo_tag; }
/// <summary> /// Returns the set of user tags on all photos specified. /// </summary> /// <example> /// <code> /// private static void RunDemoAsync() /// { /// Api api = new Api(new DesktopSession(Constants.ApplicationKey, Constants.ApplicationSecret, Constants.ApplicationSecret, Constants.SessionKey)); /// api.Photos.GetTagsAsync(new List<string> {Constants.PhotoId}, AsyncDemoCompleted, null); /// } /// /// private static void AsyncDemoCompleted(IList<photo_tag> result, Object state, FacebookException e) /// { /// var actual = result; /// } /// </code> /// </example> /// <param name="pids">The list of photos from which to extract photo tags.</param> /// <param name="callback">The AsyncCallback delegate</param> /// <param name="state">An object containing state information for this asynchronous request</param> /// <returns>If no photo tags are found, the method will return an empty photos_getTags_response element. Text tags not corresponding to a user are not currently returned. Some tags may be text-only and will have an empty subect element. This occurs in the case where a user did not specifically tag another account, but just supplied text information.</returns> /// <remarks> A tag of a user will be visible to an application only if that user has not turned off access to the Facebook Platform.</remarks> public void GetTagsAsync(List<string> pids, GetTagsCallback callback, Object state) { GetTags(pids, true, callback, state); }