iTunes Search API:更新通知

时间:2018-10-10 17:05:12

标签: php wordpress mac-app-store itunes-sdk itunes-api

我正在使用iTunes API搜索和高级自定义字段WordPress插件,因此wp作者可以向自定义字段添加mac应用程序ID,并且上面植入的iTunes Search API会在wp帖子中自动添加应用程序的所有其他信息。当应用程序信息更新时,我的wp帖子将具有更新的信息,例如上一个版本号应用程序大小和...

但是问题是我自己撰写了对网站内任何应用程序的任何版本的评论和指南,需要手动进行更新。

例如,我在WordPress上使用上述方法为“ Things 3” mac应用程序的3.7.1版添加了一个帖子,并且我用自己的描述和帖子中的手写内容对该版本进行了评论。

现在我需要在此应用程序获得新版本或更新时得到通知,以便我可以更新评论并在帖子中添加一些新版本的文本。

您能想到什么方法或方法,以便我在网站上查看过的应用程序得到更新时会通知我?

我真的很感激或教taught!

谢谢。

2 个答案:

答案 0 :(得分:0)

没有本机API可以满足您的要求。

但是,我相信您只需编写一些代码即可使用应用程序的RSS提要,然后创建一些内容以在发生更改时通知您。

请参阅App HomeScan的示例 https://itunes.apple.com/lookup?id=1380025232

ID =您的APPID

我相信这应该为您提供一些指导您做所需的事情。

答案 1 :(得分:0)

这是对我们在其他答案中的评论历史的答复。

@erfanMHD,有很多方法可以做到这一点。您无需在javascript中执行此操作。有人可以给您一个简单的代码段,但这并不是什么真正的事情,因为它还需要一些其他功能,并且在StackOverflow中通常是不受欢迎的。

您将需要在某个地方存储上次编写的审阅的应用程序的localVersion。在下面编写的示例中,我使用了一个简单的MySQL数据库来保存本地版本。您还需要弄清楚如何显示数据。我知道您可以向wordpress仪表板添加内容,但这不是我们可以通过StackOverflow向您展示的方法。

但是,下面仅是关于如何实现您要完成的任务的一个非常简单(仅供参考)的目的。但是,这仅是指导您完成此过程的示例。

对于此演示,您将需要一个MySQL数据库,其数据库名称为test,并创建一条名为application_version的记录,该记录具有3行。 ID,名称,版本。

<?php
    $servername = "localhost"; // Your MySQL Server
    $username = "root"; // Your MySQL Username
    $password = "password"; // Your MySQL Password
    $dbname = "test"; // The name of your MySQL database
    $id = "904280696"; // The ID of the applicaiton you're wanting to check

    function search($searchTerm){

        // Construct our API / web services lookup URL.
        $url = 'https://itunes.apple.com/lookup?id=' . urlencode($searchTerm);

        // Use file_get_contents to get the contents of the URL.
        $result = file_get_contents($url);

        // If results are returned.
        if($result !== false){
            // Decode the JSON result into an associative array and return.
            return json_decode($result, true);
        }

        // If we reach here, something went wrong.
        return false;

    }

    function updateVersion($id, $name, $version) {

        // Create MySQL connection
        $conn = new mysqli($GLOBALS['servername'], $GLOBALS['username'], $GLOBALS['password'], $GLOBALS['dbname']);

        // Check MySQL connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }

        // Save the Version information
        $sql = "UPDATE application_version SET name='" . $name . "', version='" . $version . "' WHERE id='" . $id . "'";
        echo $sql;
        echo "<br>";

        // Run the Insert into MySQL
        if ($conn->query($sql) === TRUE) {

            // Print On Success
            echo "Record Updated Successfully";
            echo "<br>";
        } else {

            // We dun goofed
            echo "Error: " . $sql . "<br>" . $conn->error;
            echo "<br>";
        }

        $conn->close();
    }

    function getLocalVersion($id) {
        // Create MySQL connection
        $conn = new mysqli($GLOBALS['servername'], $GLOBALS['username'], $GLOBALS['password'], $GLOBALS['dbname']);

        // Check MySQL connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }

        $sql = "SELECT * FROM application_version WHERE ID = " . $GLOBALS['id'];

        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
            echo "Found Application ID Entry in database";
            echo "<br>";
            echo "<table><tr><th>ID</th><th>Name</th><th>Version</th></tr>";

            // output data of each row
            while($row = $result->fetch_assoc()) {
                echo "<tr><td>".$row["id"]."</td><td>".$row["name"]."</td><td>".$row["version"]."</td></tr>";
                $GLOBALS['storedVersion'] = $row["version"];
            }
            echo "</table>";
            echo "<br>";

        } else {
            echo "No Application ID Entry found in database";
            echo "<br>";
        }


        $conn->close();
    }

    // Search for your requested ID
    $searchResults = search($GLOBALS['id']);
    $currentVersion = '0.0.0';
    $storedVersion = '0.0.0';
    $appName = 'null';

    // Loop through the results.
    foreach($searchResults['results'] as $result){

        // Pass the current version to variable
        $currentVersion = $result['version'];
        $appName = $result['trackName'];

        // Get the current version or what ever else information you need
        echo 'Current Version: ' . $currentVersion;
        echo "<br>";
        echo "<br>";
    }

    // Get Local Version from database
    getLocalVersion($id);

    if ($currentVersion > $storedVersion) {
        echo "You have an old version friend";
        echo "<br>";

        // Write what you want it to do here

        updateVersion($id, $appName, $currentVersion);
    } else {
        echo "You're all up to date";
        echo "<br>";

        // Write what you don't want it to do here
    }
?>

同样,这只是快速又肮脏。您想做很多其他的制衡工作。我马上就可以看到一张要插入的支票。