2016-02-08 3 views
0

Я использую API данных V3 для YouTube, чтобы добавить подписку на канал. Это происходит при установке Wordpress.API данных YouTube: добавьте подписку

Я добавил к API Google (для OAuth) на функции темы Wordpress:

wp_enqueue_script('googleapi', 'https://apis.google.com/js/client.js?onload=googleApiClientReady', array(), '1.0.0', true); 

я добавил в том же образом OAuth файла JavaScript, который является первым один здесь: https://developers.google.com/youtube/v3/code_samples/javascript.

Следуя этому руководству (https://developers.google.com/youtube/v3/docs/subscriptions/insert (сценарий приложений)), я расширил OAuth js с помощью метода addSubscription.

API-интерфейс Google Client, похоже, загружен и работает так, как он правильно называет googleApiClientReady на oauth javascript.

Таким образом, это как подписка вставляется:

OAuth JAVASCRIPT

... ... ... 

// After the API loads 
function handleAPILoaded() { 
    addSubscription(); 
} 
function addSubscription() { 
    // Replace this channel ID with the channel ID you want to subscribe to 
    var channelId = 'this is filled with the channel ID'; 
    var resource = { 
    snippet: { 
     resourceId: { 
     kind: 'youtube#channel', 
     channelId: channelId 
     } 
    } 
    }; 

    try { 
    var response = YouTube.Subscriptions.insert(resource, 'snippet'); 
    jQuery('#success').show(); 

    } catch (e) { 
    if(e.message.match('subscriptionDuplicate')) { 
     jQuery('#success').show(); 
    } else { 
     jQuery('#fail').show(); 

     alert("Please send us a mail() with the following: ERROR: " + e.message); 
    } 

    } 

Итак, первая ошибка приходит с

YouTube.Subscriptions.insert(resource, 'snippet') 

Это говорит YouTube не определен. Я заменил его на:

gapi.client.youtube.subscriptions.insert(resource, 'snippet'); 

И эта ошибка ушла. При проверке ответа, как подписка не завершена, это то, что я получаю

{"wc":1,"hg":{"Ph":null,"hg":{"path":"/youtube/v3/subscriptions","method":"POST","params":{},"headers":{},"body":"snippet","root":"https://www.googleapis.com"},"wc":"auto"}} 

Итак, я хотел бы знать, что происходит по требованию, что POST и то, что решение этого.

Я могу опубликовать полный файл OAuth, но это так же, как в примере, плюс метод addSubscription в конце.

ответ

0

Хорошо, я получил его работу, проблема была в запросе POST. Вот полный метод рабочий:

// Subscribes the authorized user to the channel specified 
function addSubscription(channelSub) { 
    var resource = { 
     part: 'id,snippet', 
     snippet: { 
      resourceId: { 
       kind: 'youtube#channel', 
       channelId: channelSub 
      } 
     } 
    }; 

    var request = gapi.client.youtube.subscriptions.insert(resource); 
    request.execute(function (response) { 
     var result = response.result; 
     if (result) { 
      // alert("Subscription completed"); 
      } 
     } else { 
      // alert("Subscripion failed"); 
      // ... 
     } 
    }); 
} 

Кроме того, убедитесь, чтобы загрузить Google Apps API (на самом деле без него кнопку авторизированным/логин не будет работать) и JQuery.

0

Любой шанс, что вы можете опубликовать все, что сделало эту работу ... все JS полностью auth.js сохраните ваши личные ключи, im работая над этой точной проблемой.