2016-08-12 5 views
1

Ich bin ein Anfänger in php und ich möchte ein PHP-Skript auf einem Server einige Informationen von meinem Trello Konto erhalten mit (hier localhost -> wamp)Informationen erhalten Trello API PHP

verwendete ich ein einfaches PHP Code, den ich im Internet gefunden habe, um einige Anfragen an das Trello api zu stellen.

Es ist in einer Trello-api-Klasse (Trello-api.php)

<?php 
    class trello_api { 
    private $key; 
    private $secret; 
    private $token; 

    public function __construct ($key, $secret, $token) { 
     $this->key = $key; 
     $this->secret = $secret; 
     $this->token = $token; 
    } 

    public function request ($type, $request, $args = false) { 
     if (!$args) { 
     $args = array(); 
     } elseif (!is_array($args)) { 
     $args = array($args); 
     } 

     if (strstr($request, '?')) { 
     $url = 'https://api.trello.com' . $request . '&key=' . $this->key . '&token=' . $this->token; 
     } else { 
     $url = 'https://api.trello.com' . $request . '?key=' . $this->key . '&token=' . $this->token; 
     } 

     $c = curl_init(); 
     curl_setopt($c, CURLOPT_HEADER, 0); 
     curl_setopt($c, CURLOPT_VERBOSE, 0); 
     curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($c, CURLOPT_URL, $url); 

     if (count($args)) curl_setopt($c, CURLOPT_POSTFIELDS , http_build_query($args)); 

     switch ($type) { 
     case 'POST': 
      curl_setopt($c, CURLOPT_POST, 1); 
      break; 
     case 'GET': 
      curl_setopt($c, CURLOPT_HTTPGET, 1); 
      break; 
     default: 
      curl_setopt($c, CURLOPT_CUSTOMREQUEST, $type); 
     } 

     $data = curl_exec($c); 
     curl_close($c); 

     return json_decode($data); 
    } 
    } 
?> 

Ich habe die Datei im Verzeichnis wamp ../www/trello/trello-api.php

besteht ich habe eine andere Datei index.php

<?php 
require "./trello_api.php"; 
$key = 'my_key'; 
$secret = 'my_secret'; 
$token = 'my_token'; 
$trello = new trello_api($key, $secret, $token); 

$data = $trello->request('GET', ('1/boards/')); 

echo $data; 

?> 

die Variable $ data ist null statt die jSON-Datei mit der definierten Liste Rückkehr

Weiß jemand, wie man diesen Code funktioniert?

+0

prüfen Sie diesen Link, wenn es keine Hilfe für Sie: http://blog.clarkrasmussen.com/2013/06/25/php-und-der-trello-api/ –

Antwort

1

$ secret wird in Ihrer Klasse trello_api nicht verwendet und kann entfernt werden. Die API-URL wurde nicht ordnungsgemäß erstellt, da zwischen Domäne und Pfad kein Schrägstrich vorhanden war. Außerdem habe ich die CURLOPT_CAINFO-Option zu CURL hinzugefügt, da API HTTPS-Protokoll verwendet.

Mein Trello-api.php:

<?php 

class trello_api 
{ 
    private $key; 
    private $token; 

    public function __construct($key, $token) 
    { 
     $this->key = $key; 
     $this->token = $token; 
    } 

    public function request($type, $request, $args = false) 
    { 
     if (!$args) { 
      $args = array(); 
     } elseif (!is_array($args)) { 
      $args = array($args); 
     } 

     if (strstr($request, '?')) { 
      $url = 'https://api.trello.com/1/' . $request . '&key=' . $this->key . '&token=' . $this->token; 
     } else { 
      $url = 'https://api.trello.com/1/' . $request . '?key=' . $this->key . '&token=' . $this->token; 
     } 

     $c = curl_init(); 
     curl_setopt($c, CURLOPT_HEADER, 0); 
     curl_setopt($c, CURLOPT_VERBOSE, 0); 
     curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($c, CURLOPT_URL, $url); 
     curl_setopt($c, CURLOPT_CAINFO, dirname(__FILE__) . '/trello.com.crt'); 

     if (count($args)) curl_setopt($c, CURLOPT_POSTFIELDS, http_build_query($args)); 

     switch ($type) { 
      case 'POST': 
       curl_setopt($c, CURLOPT_POST, 1); 
       break; 
      case 'GET': 
       curl_setopt($c, CURLOPT_HTTPGET, 1); 
       break; 
      default: 
       curl_setopt($c, CURLOPT_CUSTOMREQUEST, $type); 
     } 

     $data = curl_exec($c); 
     echo curl_error($c); 
     curl_close($c); 

     return json_decode($data); 
    } 
} 

/trello.com.crt ist Zertifikatsdatei von FireFox auf Trello API URL exportiert.

Meine index.php:

<?php 
require "./trello-api.php"; 
$key = 'key'; 
$token = 'token'; 
$trello = new trello_api($key, $token); 

$data = $trello->request('GET', ('member/me/boards')); 

echo '<pre>'; 
print_r($data); 
echo '</pre>'; 

Beispiel API-Antwort:

Array 
(
    [0] => stdClass Object 
     (
      [name] => TESt 
      [desc] => 
      [descData] => 
      [closed] => 
      [idOrganization] => 
      [pinned] => 
      [invitations] => 
      [shortLink] => sqzLZoin 
      [powerUps] => Array 
       (
       ) 

      [dateLastActivity] => 
      [idTags] => Array 
       (
       ) 

      [id] => 57adee08e0ba2754693cc3de 
      [invited] => 
      [starred] => 
      [url] => https://trello.com/b/sqzLZoin/test 
      [prefs] => stdClass Object 
       (
        [permissionLevel] => private 
        [voting] => disabled 
        [comments] => members 
        [invitations] => members 
        [selfJoin] => 
        [cardCovers] => 1 
        [cardAging] => regular 
        [calendarFeedEnabled] => 
        [background] => blue 
        [backgroundImage] => 
        [backgroundImageScaled] => 
        [backgroundTile] => 
        [backgroundBrightness] => dark 
        [backgroundColor] => #0079BF 
        [canBePublic] => 1 
        [canBeOrg] => 1 
        [canBePrivate] => 1 
        [canInvite] => 1 
       ) 

      [memberships] => Array 
       (
        [0] => stdClass Object 
         (
          [id] => 57adee08e0ba2754693cc3df 
          [idMember] => 57adedff402470436a70280b 
          [memberType] => admin 
          [unconfirmed] => 
          [deactivated] => 
         ) 

       ) 

      [subscribed] => 
      [labelNames] => stdClass Object 
       (
        [green] => 
        [yellow] => 
        [orange] => 
        [red] => 
        [purple] => 
        [blue] => 
        [sky] => 
        [lime] => 
        [pink] => 
        [black] => 
       ) 

      [dateLastView] => 2016-08-12T15:41:11.371Z 
      [shortUrl] => https://trello.com/b/sqzLZoin 
     ) 

    [1] => stdClass Object 
     (
      [name] => Добро пожаловать на доску 
      [desc] => 
      [descData] => 
      [closed] => 
      [idOrganization] => 
      [pinned] => 
      [invitations] => 
      [shortLink] => huMmEapC 
      [powerUps] => Array 
       (
       ) 

      [dateLastActivity] => 2016-08-12T15:40:47.911Z 
      [idTags] => Array 
       (
       ) 

      [id] => 57adedff402470436a702811 
      [invited] => 
      [starred] => 
      [url] => https://trello.com/b/huMmEapC/- 
      [prefs] => stdClass Object 
       (
        [permissionLevel] => private 
        [voting] => disabled 
        [comments] => members 
        [invitations] => members 
        [selfJoin] => 1 
        [cardCovers] => 1 
        [calendarFeedEnabled] => 
        [background] => blue 
        [backgroundImage] => 
        [backgroundImageScaled] => 
        [backgroundTile] => 
        [backgroundBrightness] => dark 
        [backgroundColor] => #0079BF 
        [canBePublic] => 1 
        [canBeOrg] => 1 
        [canBePrivate] => 1 
        [canInvite] => 1 
       ) 

      [memberships] => Array 
       (
        [0] => stdClass Object 
         (
          [id] => 57adedff402470436a702815 
          [idMember] => 4e6a7fad05d98b02ba00845c 
          [memberType] => normal 
          [unconfirmed] => 
          [deactivated] => 
         ) 

        [1] => stdClass Object 
         (
          [id] => 57adedff402470436a702816 
          [idMember] => 57adedff402470436a70280b 
          [memberType] => admin 
          [unconfirmed] => 
          [deactivated] => 
         ) 

       ) 

      [subscribed] => 
      [labelNames] => stdClass Object 
       (
        [green] => 
        [yellow] => 
        [orange] => 
        [red] => 
        [purple] => 
        [blue] => 
        [sky] => 
        [lime] => 
        [pink] => 
        [black] => 
       ) 

      [shortUrl] => https://trello.com/b/huMmEapC 
     ) 

) 
+0

Danke! Nur eine Frage, wie exportieren Sie die Zertifikatsdatei /trello.com.crt von Trello URL? Weil ich den folgenden Fehler habe: "Fehler beim Setzen des Zertifikats Orte überprüfen: CAfile: C: \ wamp64 \ www \ trello_new/trello.com.crt CApath: keine" –

+1

Ich habe https://api.trello.com/1 geöffnet/in FF, geklickt auf grünes Schloss-Zeichen auf der linken Seite der URL, dann geöffnet Details, angeklickt Ansicht zertifiziert, Details Registerkarte, Export als Zertifikatskette CRT/PEM. –

+0

Vielen Dank! Es funktioniert endlich! Du bist der Boss –

Verwandte Themen