0

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

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

例如,我使用上述方法在我的 WordPress 中添加了“Things 3”mac 应用程序 3.7.1 版的帖子,并且我已经用我自己的描述和手写在帖子中审查了这个版本。

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

你们有什么办法或方法,所以当我在我的网站上审查过的应用程序得到更新时,我可以得到通知?

我真的很感激任何方式或教导!

谢谢。

4

2 回答 2

0

这是对我们在另一个答案中的评论历史的回复。

@erfanMHD,有很多方法可以真正做到这一点。您不必在 javascript 中执行此操作。这实际上并不是某人可以为您提供简单代码片段的东西,因为它需要一些额外的东西,并且在 StackOverflow 中通常不受欢迎。

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

但是,下面是一个非常简单(仅供参考)的目的,仅用于说明如何实现您想要做的事情。但是,这只是指导您完成此过程的一个示例。

对于这个演示,您需要一个 DBName 为 test 的 MySQL 数据库,并创建一个名为 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
    }
?>

同样,这又快又脏。你会想做很多额外的检查和平衡。我立即看到的一个将在插入检查中。

于 2018-10-15T16:59:49.757 回答
0

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

但是,通过一些编码,我相信您可以使用应用程序的 RSS 提要然后创建一些东西来通知您更改。

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

ID=你的APPID

我相信这应该会给你一些大致的方向来做你需要的事情。

于 2018-10-10T17:12:26.903 回答