Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Tumblr -> cURL -> dodwanie nowego bloga
Forum PHP.pl > Forum > PHP
kamykthm
Witam,
mam kod który mnie loguje do tumblr'a:
  1. include ('simple_html_dom.php');
  2. function get_data($url, $post=null, $header=false, $cookie=null){
  3. $ch = curl_init($url);
  4. curl_setopt($ch, CURLOPT_POST, true);
  5. curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  7. if($header) curl_setopt($ch, CURLOPT_HEADER, true);
  8. if($cookie) curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  9. return curl_exec($ch);
  10. }
  11. //
  12. function add_postfields($data, &$post){
  13. $site = new DOMDocument();
  14. @$site->loadHTML($data);
  15. $inputs = $site->getElementsByTagName('input');
  16. foreach($inputs AS $input){
  17. if($input->hasAttribute('name')){
  18. switch($input->getAttributeNode('name')->value){
  19. case 'recaptcha_public_key':
  20. $post['recaptcha_public_key'] = $input->getAttributeNode('value')->value;
  21. break;
  22. case 'recaptcha_response_field':
  23. $post['recaptcha_response_field'] = $input->getAttributeNode('placeholder')->value;
  24. break;
  25. case 'http_referer':
  26. $post['http_referer'] = $input->getAttributeNode('value')->value;
  27. break;
  28. case 'form_key':
  29. $post['form_key'] = $input->getAttributeNode('value')->value;
  30. break;
  31. }
  32. }
  33. }
  34. }
  35. //
  36. function get_cookies($data){
  37. preg_match_all('|Set-Cookie: (.*);|U', $data, $matches);
  38. return implode('; ', $matches[1]);
  39. }
  40. //
  41. function tumblr($url, $email, $password){
  42. $post = array(
  43. 'user[email]' => $email,
  44. 'user[password]' => $password,
  45. 'user[age]' => 50,
  46. 'user[tos]' => 1
  47. );
  48. add_postfields(get_data('http://www.tumblr.com/login', http_build_query($post)), $post);
  49. $cookie = get_cookies(get_data('http://www.tumblr.com/login', http_build_query($post), true), $post);
  50. return get_data($url, null, false, $cookie);
  51. }
  52. $url = 'http://www.tumblr.com/new/blog';
  53. $email = 'a@b.pl';
  54. $password = '123';
  55. $data = tumblr($url, $email, $password);
  56.  

Ale za cholerę nie mogę ogarnąć dodawnia nowego bloga, będę wdzięczny jak ktoś pomoże.
jackraymund
Zobacz jak wygląda post do wysyłania bloga.
Dla przykładu format daty dla wysłania odpowiedzi na tym forum.
http://screenshooter.net/0246101/husnhrt
  1. $post = array(
  2. 'act' => 'POST',
  3. 'CODE' => '03',
  4. itd.
  5. );
  6. get_data("strona", $post, false, $cookie)

zły przykład, chyba stara wersja czy coś, u ciebie post jest pewnie jako wysyłanie pliku, ale to mniejwięcej tak samo działa, tylko wysyłaj wtedy date bez uzycia http_build_query

Dla IPB które wspieraja załączniki $post wygląda tak
http://screenshooter.net/0246101/wuhknkt
  1. $data = array('poll_question' => '', 'enableemo' => 'yes', 'enablesig' => 'yes',
  2. 'TopicTitle' => $nazwatematu, 'ipsTags' => '', 'isRte' => '1', 'noSmilies' => '0',
  3. 'noCKEditor' => '0', 'Post' => $tresc, 'FILE_UPLOAD' => '', 'FILE_UPLOAD' => '',
  4. 'st' => '0', 'app forums' => '', 'module' => 'post', 'section' => 'post',
  5. 'do' => 'new_post_do', 's' => $auth[3], 'p' => '0', 't' => '', 'f' => $id_dzialu,
  6. 'parent_id' => '0', 'attach_post_key' => $post_key[2], 'auth_key' => $auth[1],
  7. 'removeattachid' => '0', 'return' => '', '_from' => '', 'dosubmit' =>
  8. 'Napisz nowy temat');
kamykthm
Przyznam szczerze, ze zamieszałeś tak, że nie wiem o co kaman.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.