首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hitbox.tv api不能hitbox.tv update_live_media

hitbox.tv api不能hitbox.tv update_live_media
EN

Stack Overflow用户
提问于 2016-07-25 07:46:44
回答 1查看 61关注 0票数 0

目前,我通过使用hitbox.tv api插件到我的网站来做一个项目。我想更新我的视频标题时,我是广播现场流。我使用guzzle 6向api端点发送http请求,下面是我的代码

myGuzzle.php

代码语言:javascript
复制
<?php
namespace myGuzzle;

require __DIR__.'/../vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\Exception\ClientException;

class myGuzzle{


    public $params;
    public $method;
    public $endpoint;
    public $body;
    public $status;
    public $errorJson;


    function response($params=[],$method,$endpoint) {

        $this->params = $params;
        $this->method = $method;
        $this->endpoint = $endpoint;
             $client = new Client();
             try{

            $response = $client->request($this->method, $this->endpoint,['json' => $this->params]);

             $this->body = $response->getBody();
             $this->status = $response->getStatusCode();

             }

             catch(ClientException $e){


             $this->body = $e->getMessage();
             $this->status = $e->getCode();
             $this->errorJson = $e->getResponse()->getBody();
                }


    }



     function getStatus(){

         return $this->status;
     }   
     function getBody(){
         return $this->body;

     }
     function getErrorJson(){

         return $this->errorJson;
     }
}

updateLiveMedia.php

代码语言:javascript
复制
namespace models;

use myGuzzle\myGuzzle;

class updateLiveMedia {
    protected $username;
    protected $access_token;
    public $media_user_name;
    public $media_id;
    public $media_category_id;
    public $media_live_delay;
    public $media_hidden;
    public $media_recording;
    public $media_mature;
    public $media_hosted_name;
    public $media_countries = [];
    public $media_status;
    public $media_description;



    function __construct($username,$acessToken) {

        $this->username = $username;
        $this->access_token = $acessToken;
        $this->media_countries = ["EN"];
        $this->media_category_id = '0';
        $this->media_recording = "1";
        $this->media_mature ='0';
        $this->media_user_name = $this->username;
        $this->media_hosted_name = "on";
        $this->media_live_delay='2';
        $this->media_hidden = '0';
    }

    /*
     * Parameters function(title,descritption) or
     * Parameters function(title,description,countries).
     */

    function update($opts=[]){

        if(is_array($opts)){

            foreach($opts as $key=>$value){

                $this->$key = $value;
            }

        }
        $myGuzzle = new myGuzzle;

        $uri = "https://api.hitbox.tv/media/live/".$this->username."?authToken=".$this->access_token;
        $params = ["livestream"=>[
    [
      "media_user_name"=>$this->username,
      "media_id"=>$this->media_id,
      "media_category_id"=>$this->media_category_id,
      "media_live_delay"=>$this->media_live_delay,
      "media_hidden"=>$this->media_hidden,
      "media_recording"=>$this->media_recording,
      "media_mature"=>$this->media_mature,
      "media_hosted_name"=>$this->media_hosted_name,
      "media_countries"=>  $this->media_countries,
      "media_status"=>$this->media_status,
      "media_description"=>$this->media_description,
    ]
  ]];
       $myGuzzle->response($params,"PUT",$uri);
       return $myGuzzle->getBody();
       if($myGuzzle->getStatus() == 200){
           return true;
       }
        return false;

        } 

        }

运行update()返回以下结果

代码语言:javascript
复制
{"success":true,"error":false,"message":"host_mode_enabled"}

根据hitbox.tv (http://developers.hitbox.tv/#update-live-media)提供的文档,应该返回如下内容

代码语言:javascript
复制
{
  "livestream": [
    {
      "media_user_name": "masta",
      "media_id": "1",
      "media_category_id": "447",
      "media_live_delay": "0",
      "media_hidden": "0",
      "media_recording": "1",
      "media_mature": "0",
      "media_countries": [
        "EN"
      ],
      "media_status": "This is a stream title!",
      "media_description_md": null
    }
  ]
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-25 11:47:33

更新-实况媒体的API文档描述仅当主机标志未被修改时才期望的响应。

其他案件将提供不同类型的答案:

  1. 启用主机模式时 {“成功”:真,“错误”:假,“消息”:“host_mode_enabled”}
  2. 当主机模式被禁用时 {“成功”:真,“错误”:假,“消息”:“host_mode_disabled”}

错误还会返回与文档不同的内容,例如:

  1. 如果authToken/media_id无效或权限不足{“成功”:真,“错误”:假,“消息”:“auth_required_token”}或{“成功”:真,“错误”:假,“消息”:“auth_required”}

当您更新宿主模式时,您将不会更新任何其他信息(标题)。只需尝试从查询中删除media_hosted_name,并查看描述和标题是如何更新的。然后,用户(和聊天机器人)可以看到更新的信息。

如果您对API仍然有任何问题,请告诉我。我需要一个具体的例子,可以进一步帮助你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38562244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档