alphayax/freebox_api_php

Freebox API PHP


README

stable unstable pakagist

Build Status Coverage Codacy

License Total Downloads

Freebox API PHP 的 PHP 实现

  • 完全支持版本 3
  • 部分支持版本 4

先决条件

此项目基于 composer。请安装依赖项 :)

功能

一个完整的文档列出了所有实现的服务

Freebox API (v3)

Freebox API (v4)

使用

应用程序

对象 \alphayax\freebox\utils\Application 代表您的应用程序。您需要创建此类的实例并将其传递给您想要使用的服务。

关联

要访问 Freebox API 提供的服务,您必须授权您的应用程序。此过程要求您在“关联”期间连接到 Freebox 的本地网络,并且您需要随身携带 Freebox。应用程序将自动保存 Freebox 返回的令牌,并且此过程将不再需要重复。

请注意,要修改对不同服务的访问权限,您必须通过本地 Web 界面进行:[http://mafreebox.freebox.fr/login.php]。

Freebox 参数 > 其他 > 访问管理 > 应用程序

  1. 创建一个应用程序对象。
  2. 请求连接到 Freebox 的权限(请参阅 Freebox Server 的指示灯框)
  3. 获取一个会话以使用 API 的各种服务
$App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.example', 'Freebox PHP API Exemple', '0.0.1');
$App->authorize();
$App->openSession();

本地访问

默认情况下启用本地访问。一旦创建应用程序并打开会话,您可以直接使用应用程序有权访问的服务。

远程访问

为了能够使用远程访问,您需要与您的应用程序关联的令牌。此令牌在通过调用 authorize() 方法进行关联后自动获得。令牌写入 app_token 文件。它也可以通过方法 \alphayax\freebox\utils\Application::getAppToken() 获取。

获得令牌后,您可以按照以下步骤操作

$App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.version', 'Freebox PHP API Example (Version)', '1.0.0');
$App->setFreeboxApiHost( 'https://xxx.freeboxos.fr:17105'); // A remplacer par votre host
$App->setAppToken( 'xxxxxxxxxxxxxxxxxxxx');                 // A remplacer par votre token
$App->openSession();

服务

通过服务调用 API 的服务。这些服务具有用于检索、添加或更新数据的方法。

以下是一个使用 System API 的示例

  1. 我们创建一个新的“System”服务
  2. 我们请求获取当前配置
  3. 显示返回的模型
$System = new \alphayax\freebox\api\v3\services\config\System( $App);
$SystemConfig = $System->getConfiguration();

print_r( $SystemConfig);

结果

alphayax\freebox\api\v3\models\SystemConfig Object
(
    [firmware_version:protected] => 3.3.1
    [mac:protected] => 77:77:77:77:77:77
    [serial:protected] => 7777777777777777
    [uptime:protected] => 44 jours 16 heures 35 minutes 16 secondes
    [uptime_val:protected] => 3861316
    [board_name:protected] => fbxgw2r
    [temp_cpum:protected] => 63
    [temp_sw:protected] => 52
    [temp_cpub:protected] => 58
    [fan_rpm:protected] => 2253
    [box_authenticated:protected] => 1
)

示例

示例位于 exemple 目录中。它们按服务分类

  • AirMedia:启动 Freebox Player 上视频的示例
  • Call :
    • Call:列出 Freebox 上接收和发出的呼叫(带有删除和标记为已读的示例)
    • Contact:列出联系人数组,将电话号码添加到第一个联系人的电话号码中,并移除它
  • FileSystem
    • fileSharing:在网络上共享文件的示例
    • fsListing : Freebox目录扫描示例
    • fsOperation : 文件操作示例(复制、移动、重命名、par2等)
  • config
    • check_dns : 获取当前DHCP配置的脚本
    • Connection : 获取Freebox连接的各种信息(xDSL、FTTH、DynDns等)
    • DMZ : 获取您去军事化区域的配置
    • Freeplug : 显示您的Freeplug配置
    • IncomingPort : 返回当前HTTP入口端口的配置
    • LCD : 修改Freebox服务器的LCD面板亮度示例
    • LAN : 配置LAN和探索网络上的机器
    • PortForwarding : 添加端口重定向示例
    • System : 显示Freebox的系统配置
    • UPnP : 显示UPnP配置
    • VPN : 显示VPN服务器配置,列出用户...
    • WiFi : 显示全局WiFi配置
  • download
    • Download : 显示当前下载列表,列出下载文件列表和更新下载优先级
    • DlConfig : 显示下载配置(bt、nntp等)
    • dl_rss : 解析RSS流并将其对应于正则表达式的项添加到下载中
    • Bittorrent : 显示BT下载信息
  • ParentalControl
    • Filter : 返回当前配置和过滤器
  • 存储
    • Disk : 返回连接到Freebox的磁盘信息
    • Partition : 返回磁盘信息。可以进行验证或格式化
  • remote : 远程连接示例
  • version : 显示Freebox API的版本

Freebox Delta和连接到智能设备

要访问智能设备,您必须授权应用程序访问。为此,请在获取API密钥后,进入Freebox的管理界面,然后在“Freebox设置”/“访问管理”/“应用程序”中,授权“管理警报和智能家居”。