Youtube Adding a comment

Pagina: 1
Acties:
  • 772 views

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Naar het doorlezen van de http://code.google.com/in...developers_guide_php.html ben ik er nog steeds niet uit hoe ik een filmpje extern kan beoordelen en commentaar kan geven.

Ik heb het Adding a comment voorbeeld proberen te toepassen.

Youtube geeft aan "To add a new comment, simpy use the Zend_Gdata_YouTube service object."
Nu probeer ik dit aan te roepen via.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');
$yt = new Zend_Gdata_YouTube();
/*
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
*/
Zend_Loader::loadClass('Zend_Uri_Http');


$commentFeed = $yt->getVideoCommentFeed('HIER_ID_FILM');
print_r($commentFeed);


En dit probeer ik vervolgens toe toe te passen op het voorbeeld van Google.
PHP:
1
2
3
4
5
6
7
$newComment = $yt->newCommentEntry();
$newComment->content = $yt->newContent()->setText('new comment');

// Assuming we have a valid $videoEntry that we want to comment on,
// retrieve the post url for the comment feed
$commentFeedPostUrl = $videoEntry->getVideoCommentFeedUrl();
$updatedVideoEntry = $yt->insertEntry($newComment, $commentFeedPostUrl, 'Zend_Gdata_YouTube_CommentEntry');


Nu dacht ik dat het als volgt zou werken.
$commentFeedPostUrl = 'http://www.youtube.com/watch?v=HIER_ID_FILM';

Nu neem ik aan dat ik $videoEntry->getVideoCommentFeedUrl(); uit mijn array moet hallen maar ik zou niet weten waar ik moet zoeken.

Acties:
  • 0 Henk 'm!

Verwijderd

Het lijkt me dat je dit nodig hebt:
The following code retrieves a VideoEntry corresponding to video on YouTube:
code:
1
$yt->getVideoEntry('the0KZLEacs');

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nu heb ik mijn $commentFeedPostUrl gevonden
PHP:
1
$commentFeedPostUrl = $yt->getVideoEntry('HIER_ID_FILM'')->getVideoCommentFeedUrl();


En authorisatie script toegepast:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php

require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Uri_Http');
Zend_Loader::loadClass('Zend_Gdata_YouTube');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_App_HttpException');
Zend_Loader::loadClass('Zend_Gdata_Extension_Comments');

$yt = new Zend_Gdata_YouTube();

session_start();

/* single-use token */
function getAuthSubRequestUrl()
{
    $next = 'http://www.domein.com/setRating.php';
    $scope = 'http://gdata.youtube.com';
    $secure = false;
    $session = true;
    return Zend_Gdata_AuthSub::getAuthSubTokenUri($next, $scope, $secure, $session);
}

/* Upgrading to a session token, session token, which does not expire */
function getAuthSubHttpClient()
{
    if (!isset($_SESSION['sessionToken']) && !isset($_GET['token']) ){
        echo '<a href="' . getAuthSubRequestUrl() . '">Login!</a>';
        return;
    } else if (!isset($_SESSION['sessionToken']) && isset($_GET['token'])) {
      $_SESSION['sessionToken'] = Zend_Gdata_AuthSub::getAuthSubSessionToken($_GET['token']);
    }

    $httpClient = Zend_Gdata_AuthSub::getHttpClient($_SESSION['sessionToken']);
    return $httpClient;
}

getAuthSubHttpClient();


$newComment = $yt->newCommentEntry();
$newComment->content = $yt->newContent()->setText('new comment');
// retrieve the post url for the comment feed
$commentFeedPostUrl = $yt->getVideoEntry('HIER_ID_FILM')->getVideoCommentFeedUrl();

$updatedVideoEntry = $yt->insertEntry($newComment, $commentFeedPostUrl, 'Zend_Gdata_YouTube_CommentEntry');

?>


Alleen krijg ik nu de melding

Fatal error
Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 401
User authentication required.

Terwijl mijn $_SESSION['sessionToken'] waarde bevat, hoe zou ik deze mee moeten sturen?

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Nu online

MueR

Admin Tweakers Discord

is niet lief

Lees je de documentatie uberhaupt wel, of kopieer je alleen stukken code in de hoop dat het werkt?

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb alles stap voor stap door genomen:
"You should use AuthSub authentication if you are building a web application that will let users link videos, comments, ratings, contacts or other information to their own YouTube accounts."

http://code.google.com/in...hSub_for_Web_Applications

Note: ClientLogin authentication should not be used in Web applications, which should use AuthSub authentication instead.

[ Voor 15% gewijzigd door Verwijderd op 20-09-2010 14:06 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb mijn code opnieuw opgebouwd, alles heb ik stap voor stap opgezet volgens de documentatie mijn website is geautoriseerd. En mijn $secureblijft op false staan.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php

$developerKey = '..................';
$applicationId = 'SetComment';
$clientId = 'My comment app';


require_once 'Zend/Loader.php'; // the Zend dir must be in your include_path
Zend_Loader::loadClass('Zend_Gdata_YouTube');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');

$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);

/* Setting the API version */
$yt->setMajorProtocolVersion(2);

/*
AuthSub for web applications
Start a new session
*/
session_start();

function getAuthSubRequestUrl()
{
    $next = 'http://www.domein.com/authsub/setComments.php';
    $scope = 'http://gdata.youtube.com';
    $secure = false;
    $session = true;
    return Zend_Gdata_AuthSub::getAuthSubTokenUri($next, $scope, $secure, $session);
}

/* Upgrading to a session token */
function getAuthSubHttpClient()
{
    if (!isset($_SESSION['sessionToken']) && !isset($_GET['token']) ){
        echo '<a href="' . getAuthSubRequestUrl() . '">Login!</a>';
        return;
    } else if (!isset($_SESSION['sessionToken']) && isset($_GET['token'])) {
      $_SESSION['sessionToken'] = Zend_Gdata_AuthSub::getAuthSubSessionToken($_GET['token']);
    }

    $httpClient = Zend_Gdata_AuthSub::getHttpClient($_SESSION['sessionToken']);
    return $httpClient;
}

//getAuthSubHttpClient();
print getAuthSubRequestUrl();
 
?>

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Nu online

MueR

Admin Tweakers Discord

is niet lief

PHP:
1
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);

Waar komt die $httpClient vandaan dan?

[ Voor 195% gewijzigd door MueR op 20-09-2010 16:05 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik neem aan dat regel 12 inderdaad je minstens een notice geeft dat $httpClient niet bestaat, die maak je immers pas later aan. Het idee is dat je eerst de authorisatie regelt en pas als je dat hebt kun je de API gaan gebruiken, dat lijk je nu een beetje door elkaar te halen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Eerlijk gezegd ben ik de weg kwijt. Volgens YouTube:
You can create a fully authenticated YouTube service object by passing the $httpClient object to the Zend_Gdata_YouTube service object's constructor.

Als ik getAuthSubHttpClient(); aanroep kom ik netjes op de autorisatie pagina van YouTube maar naar autoristatie blijft $secure = false;

ik heb wel een waarde van [_authSubToken:private]

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Wat betekent die $secure volgens jou dan? Ik krijg het idee dat je niet echt bezig bent om het te begrijpen allemaal.

Zoek eerst eens uit wat de authorisatie doet, wat secure inhoudt en wat de token is :)

[ Voor 27% gewijzigd door Cartman! op 20-09-2010 16:21 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Cartman! schreef op maandag 20 september 2010 @ 16:17:
Ik neem aan dat regel 12 inderdaad je minstens een notice geeft dat $httpClient niet bestaat...
ik heb dit nu staan op regel 45.
PHP:
1
$yt = new Zend_Gdata_YouTube(getAuthSubHttpClient(), $applicationId, $clientId, $developerKey);


maar dat haalt niets uit

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Cartman! schreef op maandag 20 september 2010 @ 16:21:
Wat betekent die $secure volgens jou dan? Ik krijg het idee dat je niet echt bezig bent om het te begrijpen allemaal.
Ik dacht dat ik de documentatie wel goed had opgevolgd. Maar ik zit inderdaad nu wel op een punt, dat ik het beter even een uurtje rust kan geven. En dat ik er straks weer fris tegenaan ga

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Nu online

MueR

Admin Tweakers Discord

is niet lief

Ik denk dat je beter eens kunt beginnen met de basis van programmeren. Je maakt fout op fout op fout, leest documentatie niet goed door en lijkt maar willekeurig code bij elkaar te copy-pasten in de hoop dat het werkt. Dit schiet gewoon niet op en eerlijk gezegd zie ik dit topic ook niet echt de goede kant op gaan. Niet voordat we nog 50 posts verder zijn in ieder geval. Het is genoeg geweest.

Lees Programming FAQ - Debuggen: hoe doe ik dat? maar eens door, misschien leer je er wat van.

[ Voor 13% gewijzigd door MueR op 20-09-2010 16:33 ]

Anyone who gets in between me and my morning coffee should be insecure.

Pagina: 1

Dit topic is gesloten.