如何使用 JSON 和 PHP 创建社交媒体时间线?
How to create a SocialMedia TimeLine with JSON and PHP?
我正在创建一个网站,我想在其中获取我的社交媒体帐户的时间表。目前,我有 2 PHP
类 (Youtube-plugin
, Instagram-Plugin
) 获取每个网络的 JSON
个文件。
class PersonalinstagramPlugin{
public $myAccesToken;
public $myUsername;
public $myUserID;
public function __construct($accesToken,$Username) {
$this->myAccesToken = $accesToken;
$this->myUsername = $Username;
$this->myUserID = $this->curlConnect("https://api.instagram.com/v1/users/search?q=" . $this->myUsername . "&access_token=" . $this->myAccesToken)->data[0]->id; }
public function curlConnect($api_url)
{
$connection_c = curl_init(); // initializing
curl_setopt( $connection_c, CURLOPT_URL, $api_url ); // API URL to connect
curl_setopt( $connection_c, CURLOPT_RETURNTRANSFER, 1 ); // return the result, do not print
curl_setopt( $connection_c, CURLOPT_TIMEOUT, 20 );
$json_return = curl_exec( $connection_c ); // connect and get json data
curl_close( $connection_c ); // close connection
return json_decode( $json_return ); // decode and return
}
public function getLatestPosts()
{
$response = $this->curlConnect("https://api.instagram.com/v1/users/".$this->myUserID."/media/recent?access_token=".$this->myAccesToken);
return $response;
}
对于 youtube
插件也是一样的。
什么是将从每个插件获得的数据组合起来的最佳方法 (JSON)
并将它们组合到一个按日期排序的时间轴中?
从面向对象的方法来看,我建议您研究一下继承。您从 youtube 获得的结果和您从 instagram 获得的结果可能有一些共同的字段,例如 ID、postdate、最后修改时间和内容。创建一个可以存储这些公共字段的对象,并将其命名为 SocialMediaPost。这可以用来表示每个社交媒体 post。
然后您可以创建 2 个特定于包含自定义字段的网络的对象,这些 classes 可以继承自 SocialMediaPost class。您可以将 json 解析为自定义对象并将它们存储在数组中。然后,您可以使用循环将每个 post 转换为基本类型,并按 post 日期或类似日期对它们进行排序。
我正在创建一个网站,我想在其中获取我的社交媒体帐户的时间表。目前,我有 2 PHP
类 (Youtube-plugin
, Instagram-Plugin
) 获取每个网络的 JSON
个文件。
class PersonalinstagramPlugin{
public $myAccesToken;
public $myUsername;
public $myUserID;
public function __construct($accesToken,$Username) {
$this->myAccesToken = $accesToken;
$this->myUsername = $Username;
$this->myUserID = $this->curlConnect("https://api.instagram.com/v1/users/search?q=" . $this->myUsername . "&access_token=" . $this->myAccesToken)->data[0]->id; }
public function curlConnect($api_url)
{
$connection_c = curl_init(); // initializing
curl_setopt( $connection_c, CURLOPT_URL, $api_url ); // API URL to connect
curl_setopt( $connection_c, CURLOPT_RETURNTRANSFER, 1 ); // return the result, do not print
curl_setopt( $connection_c, CURLOPT_TIMEOUT, 20 );
$json_return = curl_exec( $connection_c ); // connect and get json data
curl_close( $connection_c ); // close connection
return json_decode( $json_return ); // decode and return
}
public function getLatestPosts()
{
$response = $this->curlConnect("https://api.instagram.com/v1/users/".$this->myUserID."/media/recent?access_token=".$this->myAccesToken);
return $response;
}
对于 youtube
插件也是一样的。
什么是将从每个插件获得的数据组合起来的最佳方法 (JSON)
并将它们组合到一个按日期排序的时间轴中?
从面向对象的方法来看,我建议您研究一下继承。您从 youtube 获得的结果和您从 instagram 获得的结果可能有一些共同的字段,例如 ID、postdate、最后修改时间和内容。创建一个可以存储这些公共字段的对象,并将其命名为 SocialMediaPost。这可以用来表示每个社交媒体 post。
然后您可以创建 2 个特定于包含自定义字段的网络的对象,这些 classes 可以继承自 SocialMediaPost class。您可以将 json 解析为自定义对象并将它们存储在数组中。然后,您可以使用循环将每个 post 转换为基本类型,并按 post 日期或类似日期对它们进行排序。