Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何从iTunes商店获取有关应用程序/歌曲/视频等的信息?_Iphone_Web Services_Macos_App Store_Itunes - Fatal编程技术网

Iphone 如何从iTunes商店获取有关应用程序/歌曲/视频等的信息?

Iphone 如何从iTunes商店获取有关应用程序/歌曲/视频等的信息?,iphone,web-services,macos,app-store,itunes,Iphone,Web Services,Macos,App Store,Itunes,我需要从iTunes商店获得有关应用程序/歌曲/视频的信息(按项目id) 我找到了 但它不适用于应用程序 有公共API吗 UPD:我可以使用 ,但这不是结构化数据,它只是iTunes用来显示内容的标记。我不能依赖于此-它可以随时更改,并且很难解析,因为它没有一致的结构…据我所知(我做了很多研究),没有公共API 您是对的,HTML不是语义结构的,因此解析它不会非常健壮。但我认为这是你唯一的选择。以下是一些可能有帮助的链接:- 一种分析评论的方法 Ars Technica文章: iPhone内部的

我需要从iTunes商店获得有关应用程序/歌曲/视频的信息(按项目id)

我找到了

但它不适用于应用程序

有公共API吗

UPD:我可以使用 ,但这不是结构化数据,它只是iTunes用来显示内容的标记。我不能依赖于此-它可以随时更改,并且很难解析,因为它没有一致的结构…

据我所知(我做了很多研究),没有公共API

您是对的,HTML不是语义结构的,因此解析它不会非常健壮。但我认为这是你唯一的选择。以下是一些可能有帮助的链接:-

一种分析评论的方法

Ars Technica文章:


iPhone内部的一篇文章:。

你在那里的链接是JSON!你的解决方案是对的。你只需要

我为自己写了这个脚本。它不是优化的,也不是未来的证明,但同时它对我有效

<?php
ini_set('display_errors', false);

if(isset($_GET['appID']) && isset($_GET['format']))
{
    $appID = (int)stripslashes($_GET['appID']);
    $format = stripslashes($_GET['format']);

    $url = "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=$appID&mt=8";
    $useragent = "iTunes/4.2 (Macintosh; U; PPC Mac OS X 10.2";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);

    $result = curl_exec($ch); 
    curl_close($ch); 

    $temp = str_replace("&#189;","",strip_tags(substr($result,
                    strpos($result,"Average rating for the current version:"),
                    strpos($result,"Rate this application:")-strpos($result,"Average rating for the current version:"))));

    $temp1 = explode("ratings",$temp);

    if(strpos($temp1[2], "Average rating for all versions:"))
            $temp1[2] = substr($temp1[2],0,stripos($temp1[2],"Average rating for all versions:"));

    $temp1[2] = preg_replace('/\s\s+/', ' ', $temp1[2]);
    $temp2 = explode(" ",$temp1[2]);

    $ratings[0] = $temp2[1];
    $ratings[1] = $temp2[2];
    $ratings[2] = $temp2[3];
    $ratings[3] = $temp2[4];
    $ratings[4] = $temp2[5];

    if($format == "prettyPrint")
        printRatings($ratings);
    else if($format == "XML");
        getXML($ratings);
}
else
{
    echo "Enter the app id and format (http://iblackjackbuddy.com/getAppRatings.php?appID=###&format=###";  
}

function printRatings($ratings)
{
    echo "Five stars: " . $ratings[0];
    echo "<br>Four stars: " . $ratings[1];
    echo "<br>Three stars: " . $ratings[2];
    echo "<br>Two stars: " . $ratings[3];
    echo "<br>One star: " . $ratings[4];

    echo "<hr>Total ratings: " . getTotalRatings($ratings);

    echo "<br>Average rating: " . getAverageRating($ratings);
}

function getTotalRatings($ratings)
{
    $temp = 1;

    for($i=0; $i < count($ratings); ++$i) 
        $temp+=$ratings[$i];

    return $temp;
}

function getAverageRating($ratings)
{
    $totalRatings = getTotalRatings($ratings);
    return round(5*($ratings[0]/$totalRatings) 
                                + 4*($ratings[1]/$totalRatings) 
                                    + 3*($ratings[2]/$totalRatings)
                                        + 2*($ratings[3]/$totalRatings) 
                                            + 1*($ratings[4]/$totalRatings),2);
}

function getXML($ratings)
{   
    header('Content-type: text/xml');
    header('Pragma: public');        
    header('Cache-control: private');
    header('Expires: -1');
    echo '<?xml version="1.0" encoding="utf-8"?>';
    echo '<Rating>';
    echo '<FiveStars>'.$ratings[0].'</FiveStars>';
    echo '<FourStars>'.$ratings[1].'</FourStars>';
    echo '<ThreeStars>'.$ratings[2].'</ThreeStars>';
    echo '<TwoStars>'.$ratings[3].'</TwoStars>';
    echo '<OneStar>'.$ratings[4].'</OneStar>';
    echo '<TotalRatings>'.getTotalRatings($ratings).'</TotalRatings>';
    echo '<AverageRating>'.getAverageRating($ratings).'</AverageRating>';
    echo '</Rating>';
}

?>

iTunes中有一个名为“iTunes商店Web服务搜索API”的公共API,它返回大量信息。其中一些是有文件记录的,但这些文件是不完整的

您可以使用API获取有关iTunes商店和应用商店中出售的所有内容的信息,包括艺术品的URL、直接链接到iTunes的链接、开发人员提供的所有应用等。它非常健壮,我很想找到更新的文档


我目前正在写一篇文章,展示一些事情是如何完成的,并扩展了可用的文档。

苹果现在似乎提供了一个更友好的返回JSON的搜索服务。注意:该API用于推广搜索结果(即,它是为附属链接设计的)

例如,如果您知道某个应用程序的Apple ID,则获取该应用程序的信息:

http://itunes.apple.com/lookup?id=[appleID]
通用关键字搜索

http://itunes.apple.com/search?term=[query]

当您尝试从iPhone访问该URL时会发生什么?从未尝试过。但这不应该有什么不同。嗯。。。我说这不适用于应用程序是错误的。它对大多数人有效,但不是对所有人都有效。我仍然不明白为什么它对某些应用程序有效,而对其他应用程序无效。。。而且它不适用于相册阅读我的“UPD:…”部分问题和floehopper的答案。你怎么知道你使用的web服务是可用的?是否有文档、WSDL或服务的参考列表可供参考?我已经阅读了该文档,并在“UPD”部分中提到了它。可以按itemId进行搜索,但并非商店中的所有商品都能找到。举个例子,试着用它来获取任意专辑或歌曲的信息,你会看到其中一些会返回结果,而另一些则不会。根据我的经验,搜索API是完全可靠和准确的。可能您使用了错误的id。并且您在UPD中引用的搜索与搜索API中记录的搜索完全不同。对不起,是我的错,我在问题的主要部分提到了它。然而,wsLookup对某些ID有效,而对其他ID无效。我还是不明白为什么…夸克,你能举个例子说明什么不起作用吗?我对api的经验很好。仅供参考,检索唱片集数据很容易尝试此功能我一直在使用此功能,但在我向加拿大启动游戏后返回的结果为空。如果我这样做,效果很好!我不知道为什么会这样!!有什么想法吗