我是使用亚马逊产品广告API的新手,对于我的第一个项目,我试图根据艺术家和标题获得特定歌曲的MP3下载产品的ASIN。我最终将使用这些ASIN来填充Amazon MP3 Clips Widget。
我正在使用PHP class from CodeDiesel.com开始使用。它工作正常,我添加了以下功能:
public function searchMusic($artist, $title) {
$parameters = array("Operation" => "ItemSearch",
"Artist" => $artist,
"Title" => $title,
"SearchIndex" => "Music",
"ResponseGroup" => "Medium");
$xml_response=$this->queryAmazon($parameters);
return $xml_response;
}
现在,麻烦的是,我似乎只能以这种方式获得专辑。例如,如果我为艺术家输入“Robert Randolph”,为标题输入“Colorblind”,我会获得Robert Randolph和Family Band的Colorblind专辑。如果我搜索特定的曲目,例如“Thrill Of It”,亚马逊就无法找到任何内容。
所以我需要做的是首先弄清楚如何查询曲目标题。然后我需要弄清楚如何将我的结果限制为MP3下载。我怎么能这样做?
如果有关于该主题的文档,您能指出我正确的方向吗?我已经reading through it,但没有看到任何我想要的参数。
感谢您的时间。
答案 0 :(得分:9)
文档组织奇特,我很难自己找到相关信息。
要查找mp3,您必须将SearchIndex
参数更改为“MP3Downloads”。然后,您必须使用“关键字”,而不是使用“艺术家”和“跟踪”。将艺术家和曲目值组合成一个字符串,用于“关键字”属性值。另外,请尝试SearchIndex
的“MusicTracks”,因为您可能会得到不同的结果。
这是我所拥有的工作系统的片段,它执行类似的查找。
$params = Array(
"Operation"=>'ItemSearch',
"SearchIndex"=>'MP3Downloads',
"ResponseGroup"=>'ItemAttributes,Tracks,Images',
"Keywords"=>$track['title'].' '.$artist['name']
);
答案 1 :(得分:2)
这也是我遇到的问题。我从同样的例子中进行了工作,我对其进行了大量修改,并将其整合到了我制作mashup的各个类中。我真正想要的是亚马逊给出的艺术家和专辑标题的预览。我现在要继续努力,因为我手上还有太多时间。我的mashup代码库在这里:
我一直从这个问题得到推荐,我的解决方案基本上和Chris一样,我有两个方法/函数在我的代码中执行此操作:
/**
* Return the tracks found on an album, have to page to get them all which this method does not do.
*
* @param string $albumTitle
* @param string $artist
* @return mixed simpleXML object
*/
public function getMP3sForAlbumByArtist($albumTitle, $artist)
{
$searchTerm = $albumTitle . ' ' . $artist;
$parameters = array("Operation" => "ItemSearch",
"Keywords" => $searchTerm,
"SearchIndex" => AmazonProductAPI::CATEGORY_MP3_DOWNLOADS,
"ResponseGroup" => AmazonProductAPI::RESPONSE_GROUP_TRACKS);
$xml_response = $this->queryAmazon($parameters);
return $xml_response;
}
/**
* Return the tracks found on a song title and artist
*
* @param string $songTitle
* @param string $artist
* @return mixed simpleXML object
*/
public function getMP3ForSongByArtist($songTitle, $artist)
{
$searchTerm = $songTitle . ' ' . $artist;
$parameters = array("Operation" => "ItemSearch",
"Keywords" => $searchTerm,
"SearchIndex" => AmazonProductAPI::CATEGORY_MP3_DOWNLOADS,
"ResponseGroup" => AmazonProductAPI::RESPONSE_GROUP_TRACKS);
$xml_response = $this->queryAmazon($parameters);
return $xml_response;
}
我的代码可以从上面的链接下载或者在GitHub中,它基于我更新的旧代码示例。它在我的主机上运行正常,但iTunes更适合预览歌曲。