ByteDance.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace app\service\byte_dance;
  3. use GuzzleHttp\Client;
  4. class ByteDance{
  5. public static function accessToken(){
  6. return self::single(ByteDanceAccessToken::class)
  7. ->setAppId(self::appId())
  8. ->setAppSecret(self::appSecret())
  9. ->get();
  10. }
  11. private static function single($class){
  12. static $container=[];
  13. if (!isset($container[$class])){
  14. $container[$class]=new $class;
  15. }
  16. return $container[$class];
  17. }
  18. public static function appId(){
  19. return config('site.byte_dance_mapp_appId');
  20. }
  21. public static function appSecret(){
  22. return config('site.byte_dance_mapp_appSecret');
  23. }
  24. public static function httpGet($url){
  25. $request=(new Client)
  26. ->get($url);
  27. $requestData = json_decode($request->getBody()->getContents(),true);
  28. ByteDance::throwIf(!empty($requestData['err_no']),$requestData['err_tips']);
  29. return $requestData['data'];
  30. }
  31. public static function httpPost($url,$params,$header=[]){
  32. $request=(new Client)
  33. ->request('post',$url,[
  34. 'json'=>$params,
  35. 'headers'=>$header
  36. ]);
  37. $requestData = json_decode($request->getBody()->getContents(),true);
  38. ByteDance::throwIf(!empty($requestData['err_no']),$requestData['err_tips']);
  39. return $requestData['data'];
  40. }
  41. public static function throwIf($condition,$msg){
  42. if($condition){
  43. throw new ByteDanceException($msg);
  44. }
  45. }
  46. }