public void GetMyMessages() { GetMyMessagesCall api = new GetMyMessagesCall(this.apiContext); api.DetailLevelList = new DetailLevelCodeTypeCollection(); api.DetailLevelList.Add(DetailLevelCodeType.ReturnSummary); // Make API call. api.GetMyMessages(); MyMessagesAlertTypeCollection alerts = api.ApiResponse.Alerts; Assert.IsNotNull(alerts); MyMessagesMessageTypeCollection msgs = api.ApiResponse.Messages; Assert.IsNotNull(msgs); MyMessagesSummaryType summary = api.ApiResponse.Summary; Assert.IsNotNull(summary); }
// // GetMyMessages // Returns information about the threaded messages sent to a user's My Messages mailbox. // http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/GetMyMessages.html // For maximum efficiency, make sure your application can first call GetMyMessages // with DetailLevel set to ReturnHeaders. // // With a detail level of ReturnHeaders or ReturnMessages, // GetMyMessages only accepts 10 unique message ID values, per request. // // GetMemberMessages // http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/GetMemberMessages.html // You can get all the messages sent within a specific time range // by providing StartCreationTime and EndCreationTime in your request. // Or you can specify an item's ItemID to get messages about an item. // After calling GetMemberMessages, inspect the children of the MemberMessages container. // For instance, if you want to know whether a message was previously answered, inspect the MessageStatus field. public static StringCollection GetAllMessageIds(AccountType account, DateTime startTime, DateTime endTime) { GetMyMessagesCall getMyMessageApiCall = new GetMyMessagesCall(account.SellerApiContext); getMyMessageApiCall.StartTime = startTime; getMyMessageApiCall.EndTime = endTime; DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] { DetailLevelCodeType.ReturnHeaders }; getMyMessageApiCall.DetailLevelList = new DetailLevelCodeTypeCollection(detailLevels); StringCollection msgIds = new StringCollection(); for (int folderId = 0; folderId <= 1; folderId++) { getMyMessageApiCall.FolderID = folderId; getMyMessageApiCall.GetMyMessages(); MyMessagesMessageTypeCollection messages = getMyMessageApiCall.MessageList; foreach (MyMessagesMessageType msg in messages) { msgIds.Add(msg.MessageID); } } return msgIds; }
public static List<EbayMessageType> GetAllMessageByIds(AccountType account, StringCollection msgIds) { List<EbayMessageType> messageList = new List<EbayMessageType>(); if (msgIds.Count > 10) { Logger.WriteSystemLog("[GetAllMessageByIds]: can only get at most 10 messages once."); return messageList; } GetMyMessagesCall getMyMessageApiCall = new GetMyMessagesCall(account.SellerApiContext); getMyMessageApiCall.MessageIDList = msgIds; DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] { DetailLevelCodeType.ReturnMessages }; getMyMessageApiCall.DetailLevelList = new DetailLevelCodeTypeCollection(detailLevels); getMyMessageApiCall.GetMyMessages(); MyMessagesMessageTypeCollection messages = getMyMessageApiCall.MessageList; foreach (MyMessagesMessageType msg in messages) { // See if this message has already existed. String msgId = msg.MessageID; EbayMessageType tmpEbayMsg = EbayMessageDAL.GetOneMessage(msgId); if (tmpEbayMsg != null && tmpEbayMsg.EbayMessageId != "") { Logger.WriteSystemLog(string.Format("[GetAllMessageByIds]: message with id={0} has already existed, skip and continue.", msgId)); continue; } EbayMessageType ebayMsg = new EbayMessageType(); ebayMsg.EbayMessageId = msg.MessageID; ebayMsg.SellerName = account.ebayAccount; ebayMsg.MessageType = msg.MessageType.ToString(); ebayMsg.QuestionType = msg.QuestionType.ToString(); ebayMsg.IsRead = msg.Read; ebayMsg.IsReplied = msg.Replied; ebayMsg.IsResponseEnabled = msg.ResponseDetails != null ? msg.ResponseDetails.ResponseEnabled : false; ebayMsg.ResponseURL = msg.ResponseDetails != null ? msg.ResponseDetails.ResponseURL : ""; ebayMsg.UserResponseDate = msg.ResponseDetails != null ? msg.ResponseDetails.UserResponseDate : DateTime.MinValue; ebayMsg.ReceiveDate = msg.ReceiveDate; //ebayMsg.RecipientUserId = msg.RecipientUserID; ebayMsg.RecipientUserId = msg.SendToName; ebayMsg.Sender = msg.Sender; ebayMsg.Subject = msg.Subject; ebayMsg.IsHighPriority = msg.HighPriority; // The message body. Plain text. ebayMsg.Content = msg.Content; // This field contains message content, and can contain a threaded message. // Max length: 2 megabytes in size. ebayMsg.Text = msg.Text; ebayMsg.ExternalMessageId = msg.ExternalMessageID; ebayMsg.FolderId = msg.Folder != null ? msg.Folder.FolderID : -1; ebayMsg.ItemID = msg.ItemID; ebayMsg.ItemTitle = msg.ItemTitle; ebayMsg.ItemEndTime = msg.ItemEndTime; ebayMsg.ListingStatus = msg.ListingStatus.ToString(); messageList.Add(ebayMsg); } return messageList; }
// Get all messages between buyers and sellers. public static bool GetAllMessages(AccountType account, DateTime startTime, DateTime endTime) { GetMyMessagesCall getMyMessageApiCall = new GetMyMessagesCall(account.SellerApiContext); getMyMessageApiCall.StartTime = startTime; getMyMessageApiCall.EndTime = endTime; DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] { DetailLevelCodeType.ReturnHeaders }; getMyMessageApiCall.DetailLevelList = new DetailLevelCodeTypeCollection(detailLevels); getMyMessageApiCall.GetMyMessages(); MyMessagesMessageTypeCollection messages = getMyMessageApiCall.MessageList; foreach (MyMessagesMessageType msg in messages) { string msgId = msg.MessageID; GetMyMessagesCall getMyMessageApiCall2 = new GetMyMessagesCall(account.SellerApiContext); StringCollection msgIds = new StringCollection(); msgIds.Add(msgId); getMyMessageApiCall2.MessageIDList = msgIds; detailLevels = new DetailLevelCodeType[] { DetailLevelCodeType.ReturnMessages }; getMyMessageApiCall2.DetailLevelList = new DetailLevelCodeTypeCollection(detailLevels); getMyMessageApiCall2.GetMyMessages(); MyMessagesMessageType msg2 = getMyMessageApiCall2.MessageList[0]; EbayMessageType ebayMsg = new EbayMessageType(); ebayMsg.EbayMessageId = msgId; ebayMsg.SellerName = account.ebayAccount; ebayMsg.MessageType = msg2.MessageType.ToString(); ebayMsg.QuestionType = msg2.QuestionType.ToString(); ebayMsg.IsRead = msg2.Read; ebayMsg.IsReplied = msg2.Replied; ebayMsg.IsResponseEnabled = msg2.ResponseDetails != null ? msg2.ResponseDetails.ResponseEnabled : false; ebayMsg.ResponseURL = msg2.ResponseDetails != null ? msg2.ResponseDetails.ResponseURL : ""; ebayMsg.UserResponseDate = msg2.ResponseDetails != null ? msg2.ResponseDetails.UserResponseDate : DateTime.MinValue; ebayMsg.ReceiveDate = msg2.ReceiveDate; ebayMsg.RecipientUserId = msg2.RecipientUserID; ebayMsg.Sender = msg2.Sender; ebayMsg.Subject = msg2.Subject; ebayMsg.IsHighPriority = msg2.HighPriority; ebayMsg.Content = msg2.Content; ebayMsg.Text = msg2.Text; ebayMsg.ExternalMessageId = msg2.ExternalMessageID; ebayMsg.FolderId = msg2.Folder != null ? msg2.Folder.FolderID : -1; ebayMsg.ItemID = msg2.ItemID; ebayMsg.ItemTitle = msg2.ItemTitle; ebayMsg.ItemEndTime = msg2.ItemEndTime; ebayMsg.ListingStatus = msg2.ListingStatus.ToString(); EbayMessageDAL.InsertOneMessage(ebayMsg); } return true; }