Intereting Posts
Вызовите методы, используя имена в C # Сопоставьте hash, созданный в C # с sql Если исключение происходит в операторе using, объект все равно удаляется? Как создать экземпляр List , но T неизвестен до выполнения? Связывание WPF ObservableCollection с конвертером Как изменить глобальный прокси Windows с помощью C # .NET с помощью «Немедленного эффекта» вопрос с интервью – как пройти через массив с другой отправной точкой? Добавление дней к дате, но исключая выходные Преобразование из зубчатого массива в двойной указатель в C # Как получить ответ от поля «Подтверждение» в коде Строка C # для форматированной строки HTML Entity Framework: исключение исключений из непризнанного элемента Преобразуйте массив в примитивный метод, чтобы выразить тот же результат, не используя LINQ только int. Как добавить значения программно в datalist / datasource в ASP.NET? MVVM: обмен данными между ViewModels

Как проверить, оценил ли пользователь мое приложение

Я разработал простую бесплатную игру для Windows 8 Store, и теперь я хочу попросить моих пользователей дать оценку игре и, возможно, написать ей обзор.

Как я могу проверить, сделали ли они это (то есть оценили игру или написали обзор), так что я больше не спрашиваю?

Джаред довольно много прибил его. Я не думаю, что вы можете, если нет API-интерфейса Windows Store, который предоставляет эту информацию вашему приложению. Информация пользователя и его статус и данные о состоянии и просмотре хранятся вне вашего приложения, поэтому вам необходимо запросить внешний источник данных (в этом случае Windows Store), чтобы узнать, оценил ли он или нет ваше приложение и просмотрел ваше приложение. API-интерфейс Windows Store в текущей версии не обеспечивает прямого доступа к этой информации.

Вот одно простое, но не столь точное обходное решение. Вы можете напомнить пользователям, чтобы они предоставили свои отзывы, если они этого не сделали, предоставив кнопку, которая ссылается на веб-страницу обзора, и быстрый вопрос «Да / Нет» в вашем приложении и локальное сохранение ответа. В идеальном мире пользователь сделал обзор, и он / она отвечает Да на ваш вопрос, и они не обеспокоены другим напоминанием.

Вы можете получить доступ к информации о магазине, как описано ниже, включая обзоры и данные о пользователях, которые написали обзор. Затем вы можете попытаться сопоставить эту информацию с информацией пользователя, доступной через Live SDK для текущего пользователя. Вы сможете только совместить имя FirstName LastName, нет единого уникального идентификатора, или, может быть, есть значок значка изображения пользователя, который может совпадать между ними, но я не проверял.

https://services.apps.microsoft.com/4R/6.2.9200-1/1/en-US/m/US/Apps/f514d64b-8705-43b7-a400-c4f4f3dedfc0/Reviews/all/s/date/ 1 / р / 1

http://jasonthomascarter.blogspot.com/2013/08/the-friendly-developers-guide-to.html

Сегодня я получил запрос от одного из разработчиков по электронной почте поддержки для одной из приложений App Roulette приложений для Windows Store. Это было довольно освежающе, и я довольно открыт для обмена информацией с другими разработчиками. Я больше взволнован, чтобы понять, что они будут создавать, чем беспокоится о возможности конкуренции. Поэтому я здесь, чтобы поделиться со всеми вами. Во всяком случае, этот разработчик задавался вопросом, как получить эту информацию о приложении, и я объясню, как я получаю доступ к этому и как вы можете это сделать.

Сначала небольшая самореклама, в дополнение к App Roulette, я использую эту информацию в нескольких других приложениях. Developer Dashboard – одностановочный магазин для просмотра отзывов со всех стран для всех ваших приложений простым нажатием, чтобы перевести каждый обзор, разработчики Windows Store – каталог всех разработчиков в Windows Store (более 10000) и их приложениях, наиболее активных Рецензенты представляют собой каталог самых плодовитых рецензентов приложений и их обзоров, а также в моем собственном приложении App Software Software, в котором перечислены все другие приложения, которые я опубликовал в Windows Store, пожалуйста, попробуйте некоторые из них.

Вот так! Сначала мы начнем с файла Robots.txt для веб-сайта Windows Store. http://apps.microsoft.com/robots.txt

Веб-сайты используют robots.txt, чтобы направлять веб-сканеров о том, как себя вести, что они хотят видеть и чего они не хотят видеть.

http://www.robotstxt.org/

Веб-роботы (также известные как Web Wanderers, Crawlers или Spiders) – это программы, которые автоматически перемещаются по Сети. Поисковые системы, такие как Google, используют их для индексации веб-контента, спамеры используют их для сканирования адресов электронной почты, и у них есть много других применений.

В этом случае файл индекса Sitemaps.xml является тем, что нас интересует. http://apps.microsoft.com/windows/sitemap_index.xml

http://www.sitemaps.org/

Sitemaps – это простой способ для веб-мастеров сообщать поисковым системам о страницах на своих сайтах, которые доступны для обхода. В своей простейшей форме Sitemap представляет собой XML-файл, в котором перечислены URL-адреса сайта, а также дополнительные метаданные о каждом URL-адресе (когда он был последним обновлен, как часто он обычно изменяется и насколько он важен, по сравнению с другими URL-адресами на сайте ), чтобы поисковые системы могли более разумно сканировать сайт.

В файле индекса Sitemap указывается каждый файл XML-файла Sitemap. На момент написания этой статьи на веб-сайте apps.microsoft.com было 141 отдельный файл XML Sitemap.

Внутри отдельных файлов указаны тысячи URL-адресов веб-страниц приложений Windows Store. Например, этот URL-адрес приложения PlayTo Receiver: http://apps.microsoft.com/windows/en-us/app/playto-receiver/72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e

Эти веб-страницы для приложений include в себя хорошую информацию, которую мы могли бы очистить от HTML, но мы можем сделать лучше … Ключевая информация, которую мы получаем здесь, – это идентификаторы приложений и в которых географические имена этих идентификаторов приложений публикуются в хранить. Например: 72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e и en-us и т. Д. …

И теперь к хорошему, есть несколько веб-сервисов, которые мы можем назвать, используя нашу недавно найденную информацию о приложении и географии.

https://services.apps.microsoft.com/browse/6.2.9200-1/615/en-US_en-US/c/US/cp/10005001/Apps/72a6ba17-2d4e-4a1c-bcfb-cdc5d4b32d0e

Существует много информации, доступной через этот веб-сервис, но это явно не обозначено именами элементов. Вот моя интерпретация многих (не всех) из них, чтобы начать вас.

sSubCategoryName = rawXML.getElementsByTagName (‘Sc’) [0] .getElementsByTagName (‘N’) [0] .childNodes [0] .nodeValue; sSubCategoryId = rawXML.getElementsByTagName (‘Sc’) [0] .getElementsByTagName (‘I’) [0] .childNodes [0] .nodeValue; sHasTrial = rawXML.getElementsByTagName (‘Try’) [0] .childNodes [0] .nodeValue; sDescription = rawXML.getElementsByTagName (‘D’) [0] .childNodes [0] .nodeValue; sDeveloper = rawXML.getElementsByTagName (‘Dev’) [0] .childNodes [0] .nodeValue; sWebsite = rawXML.getElementsByTagName (‘Ws’) [0] .childNodes [0] .nodeValue; sSupport = rawXML.getElementsByTagName (‘Sws’) [0] .childNodes [0] .nodeValue; sPrivacy = rawXML.getElementsByTagName (‘Pu’) [0] .childNodes [0] .nodeValue; sCategoryName = rawXML.getElementsByTagName (‘C’) [0] .getElementsByTagName (‘N’) [0] .childNodes [0] .nodeValue; sCategoryId = rawXML.getElementsByTagName (‘C’) [0] .getElementsByTagName (‘I’) [0] .childNodes [0] .nodeValue; sPrice = rawXML.getElementsByTagName (‘P’) [0] .childNodes [0] .nodeValue; sForegroundColor = rawXML.getElementsByTagName (‘Fg’) [0] .childNodes [0] .nodeValue; sBackgroundColor = rawXML.getElementsByTagName (‘Bg’) [0] .childNodes [0] .nodeValue; sAppIcon = rawXML.getElementsByTagName (‘Ico’) [0] .childNodes [0] .nodeValue; sAppName = rawXML.getElementsByTagName (‘T’) [0] .childNodes [0] .nodeValue; sPackageFamilyName = rawXML.getElementsByTagName (‘Pfn’) [0] .childNodes [0] .nodeValue; sResourceId = rawXML.getElementsByTagName (‘R’) [0] .childNodes [0] .nodeValue; sId = rawXML.getElementsByTagName (‘I’) [0] .childNodes [0] .nodeValue; sCapabilities = sCapabilities + arrCapabilities [k] .childNodes [0] .nodeValue + “,”; sUpdate = rawXML.getElementsByTagName (‘Ud’) [0] .childNodes [0] .nodeValue; sFeatures1 = rawXML.getElementsByTagName (‘Dbp’) [0] .childNodes [0] .nodeValue; sFeatures2 = rawXML.getElementsByTagName (‘Dbp’) [1] .childNodes [0] .nodeValue; sFeatures3 = rawXML.getElementsByTagName (‘Dbp’) [2] .childNodes [0] .nodeValue; sFeatures4 = rawXML.getElementsByTagName (‘Dbp’) [3] .childNodes [0] .nodeValue; sFeatures5 = rawXML.getElementsByTagName (‘Dbp’) [4] .childNodes [0] .nodeValue; sFeatures6 = rawXML.getElementsByTagName (‘Dbp’) [5] .childNodes [0] .nodeValue; sFeatures7 = rawXML.getElementsByTagName (‘Dbp’) [6] .childNodes [0] .nodeValue; sFeatures8 = rawXML.getElementsByTagName (‘Dbp’) [7] .childNodes [0] .nodeValue; sFeatures9 = rawXML.getElementsByTagName (‘Dbp’) [8] .childNodes [0] .nodeValue; sScreenshot1 = rawXML.getElementsByTagName (‘Ss’) [0] .getElementsByTagName (‘U’) [0] .childNodes [0] .nodeValue sScreenshot2 = rawXML.getElementsByTagName (‘Ss’) [1] .getElementsByTagName (‘U’) [0] .childNodes [0] .nodeValue sScreenshot3 = rawXML.getElementsByTagName (‘Ss’) [2] .getElementsByTagName (‘U’) [0] .childNodes [0] .nodeValue sScreenshot4 = rawXML.getElementsByTagName (‘Ss’) [3] .getElementsByTagName (‘U’) [0] .childNodes [0] .nodeValue sScreenshot5 = rawXML.getElementsByTagName (‘Ss’) [4] .getElementsByTagName (‘U’) [0] .childNodes [0] .nodeValue sScreenshot6 = rawXML.getElementsByTagName (‘Ss’) [5] .getElementsByTagName (‘U’) [0] .childNodes [0] .nodeValue sScreenshot7 = rawXML.getElementsByTagName (‘Ss’) [6] .getElementsByTagName (‘U’) [0] .childNodes [0] .nodeValue sScreenshot8 = rawXML.getElementsByTagName (‘Ss’) [7] .getElementsByTagName (‘U’) [0] .childNodes [0] .nodeValue sScreenshot9 = rawXML.getElementsByTagName (‘Ss’) [8] .getElementsByTagName (‘U’) [0] .childNodes [0] .nodeValue sCaption1 = rawXML.getElementsByTagName (‘Ss’) [0] .getEle mentsByTagName (‘Cap’) [0] .childNodes [0] .nodeValue sCaption2 = rawXML.getElementsByTagName (‘Ss’) [1] .getElementsByTagName (‘Cap’) [0] .childNodes [0] .nodeValue sCaption3 = rawXML. getElementsByTagName (‘Ss’) [2] .getElementsByTagName (‘Cap’) [0] .childNodes [0] .nodeValue sCaption4 = rawXML.getElementsByTagName (‘Ss’) [3] .getElementsByTagName (‘Cap’) [0]. childNodes [0] .nodeValue sCaption5 = rawXML.getElementsByTagName (‘Ss’) [4] .getElementsByTagName (‘Cap’) [0] .childNodes [0] .nodeValue sCaption6 = rawXML.getElementsByTagName (‘Ss’) [5]. getElementsByTagName (‘Cap’) [0] .childNodes [0] .nodeValue sCaption7 = rawXML.getElementsByTagName (‘Ss’) [6] .getElementsByTagName (‘Cap’) [0] .childNodes [0] .nodeValue sCaption8 = rawXML. getElementsByTagName ( ‘SS’) [7] .getElementsByTagName ( ‘Cap’) [0] .childNodes [0] .nodeValue

В Windows Store есть больше, чем просто приложений, есть также обзоры и многие из них. В настоящее время в Windows Store просматривается более 210 000 обзоров приложений. Эти обзоры поступают со всего мира, поэтому вам понадобятся некоторые коды стран, ваш удобный идентификатор приложения Dandy и обратите внимание на pn / 1 в конце, вы обнаружите, что эта услуга возвращает только 10 отзывов на страницу, просто увеличивая это значение до pn / 2, pn / 3 и т. д. до тех пор, пока вы не исчерпаете отзывы.

var arrCounntryCodes = [«AE», «AR», «AT», «AU», «BE», «BG», «BH», «CA», «CH», «CL», «CN», «CO «CR», «CY», «CZ», «DE», «DK», «DZ», «EE», «EG», «ES», «FI», «FR», «GB», «GR», «HK», «HR», «HU», «ID», «IE», «IL», «IN», «IQ», «IT», «JO», «JP», «KW «Л», «ЛВ», «ЛВ», «ЛЮ», «МА», «МТ», «МХ», «МО», «НЛ», «NO», «NZ», «OM», «PE», «PH», «PK», «PL», «QA», «RO», «RS», «RU», «SA», «SE »,« SG »,« SI »,« SK »,« TH »,« TN »,« TR »,« TT »,« UA »,« US »,« UY »,« VE »,« VN »] ;

https://services.apps.microsoft.com/4R/6.2.9200-1/1/en-US/m/US/Apps/f514d64b-8705-43b7-a400-c4f4f3dedfc0/Reviews/all/s/date/ 1 / р / 1

Это намного более описательно с именами элементов, поэтому я не вижу необходимости в дальнейшем объяснении этого. Вы можете увидеть полное имя, отображаемое имя, изображение, которое пользователь выбрал для представления.

Затем мы можем немного поработать … https://services.apps.microsoft.com/search/6.2.9200-1/615/en-US_en-US/m/US/c/US/il / en-US / cp / 10005001 / query / cid / 0 / pf / 1 / pc / 0 / pt / x64 / af / 0 / lf / 0 / s / 0/2 / pn / 0? phrase = Разработчик программного обеспечения

Здесь он снова становится немного загадочным, но к этому времени вы должны привыкнуть к нему. Вы можете получить идентификатор приложения из элемента I и перенести его обратно обратно в службу просмотра f514d64b-8705-43b7-a400-c4f4f3dedfc0

Итак, у вас есть это, основы вытаскивания тонны информации из Windows Store, и вы можете делать то, что вам нравится. Если вы сочтете это полезным и / или сделаете некоторые приложения, использующие эту информацию, имейте дополнительную информацию, чтобы поделиться или иным образом сообщите мне в комментариях.

Для этого не существует API. Если бы это было, это, скорее всего, было бы частью classа CurrentApp , в котором рассказывается, как было куплено приложение.

Если вы хотите попросить пользователя заполнить рейтинг (который они, возможно, уже сделали), вы можете следовать инструкциям, изложенным в этой теме:

http://social.msdn.microsoft.com/Forums/en-SG/winappswithcsharp/thread/3cba0db4-c2f6-4c79-98a9-0f740dfacf61

Мне нравится последнее сообщение, которое показывает вам, как напрямую ссылаться на вкладку обзора.