• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Sherlok potrzebuje czegoś w PHP

Sherlok

Active Member
Joined
Aug 29, 2008
Messages
2,116
Reaction score
44
Location
Poland, Wrocław.
Siemanko. Dawno mnie tu nie było, ale wróciłem, bo potrzebuję Waszego wsparcia.

Będę tworzył na facebooku konkurs, w którym złamię regulamin facebooka, bo warunkiem wzięcia udziału będzie polubienie, skomentowanie oraz udostępnienie postu konkursowego.

No dobra, konkurs będzie trwał jakiś czas... ludzie będą lajkowali, komentowali i udostępniali... ale co jak facebook nagle skasuje post konkursowy? No, w sumie, będę mógł wrzucić go na nowo, ale nie będę wiedział kto wcześniej wziął w nim udział, przez co będę musiał pominąć te osoby (a tego nie chcę).

I tutaj przyszedł mi do głowy pomysł, na stworzenie skryptu, który na bieżąco będzie śledził post konkursowy i zapisywał osoby, które go polajkowały, udostępniły i skomentowały. I żebym później miał możliwość wyświetlenia na osobnej podstronie wszystkich tych osób.

Łatwe do zrobienia? Pewnie tak, ale ja nie znam PHP.

Czy jest tutaj osoba, która byłaby chętna napisać mi taki skrypcik?
Nie mam haju, mogę dać coś ewentualnie na piwko :)

Z gorącymi pozdrowieniami,
Sherlok
 
Łatwe do zrobienia? Pewnie, że niemożliwe z użyciem PHP.
Czy w ogóle widziałeś kiedyś coś takiego lub coś podobnego? PHP to tak jakby język służący do sterowania TWOIM serwerem. Nie możemy od tak po protu wtargnąć na serwery Facebooka i sprawdzać czy ktoś dał ci lajka... Chyba, że ktoś ma jakiś inny pomysł.
 
Łatwe do zrobienia? Pewnie, że niemożliwe z użyciem PHP.
Czy w ogóle widziałeś kiedyś coś takiego lub coś podobnego? PHP to tak jakby język służący do sterowania TWOIM serwerem. Nie możemy od tak po protu wtargnąć na serwery Facebooka i sprawdzać czy ktoś dał ci lajka... Chyba, że ktoś ma jakiś inny pomysł.
A użyć CURLa + cookies i sprawdzać źródło strony (część odpowiedzialna za lajki np. <div class="LAJKI">Twoje Lajki: 5</div> i konwertować tonumber() albo użyć string:gsub() do zdobycia wartości jako liczby, czy coś takiego.)
 
A użyć CURLa + cookies i sprawdzać źródło strony (część odpowiedzialna za lajki np. <div class="LAJKI">Twoje Lajki: 5</div> i konwertować tonumber() albo użyć string:gsub() do zdobycia wartości jako liczby, czy coś takiego.)
+ CRON i przepis praktycznie gotowy.
 
Nie przeglądałem API Facebooka ale może z jego pomocą się da coś wykombinować.
 
@Redan
Panowie wyżej chyba Ci odpowiedzieli. Wyczerpali raczej temat, więc nie mam niczego do dodania.

#topic
Lajki, komentarze może zobaczyć nawet niezalogowany user, ale niestety udostępnienia są już chronione - trzeba się zalogować.

Ktoś? coś? jakieś gotowce? :)
 
Zacznij sam, pokaż że chcesz, to może Ci pomogę.
Będę 13 maja we wrocławiu, chcesz się kochać? :)
 
No ba, człowiek uczy się całe życie =) Życzę powodzenia i sorki, jeśli to naprawdę da się zrobić.
 
Prooosty przykład użycia Graph API Facebooka :)


Przypuścmy post theverge: https://www.facebook.com/verge/posts/710123969023949?stream_ref=1
id posta: 710123969023949
odpytujemy graph api:
https://graph.facebook.com/710123969023949/likes:
Code:
{
"data": [
{
"id": "100000627815225",
"name": "Nick Gumina"
},
{
"id": "1652411320",
"name": "Rene Michels"
},
{
"id": "100002287879829",
"name": "Hiŝhặm Ãŕêf Ăłĩ"
},
{
"id": "616986723",
"name": "Kenneth Chan"
},
{
"id": "718552141",
"name": "Jason Priesmeyer"
},
{
"id": "100002972394864",
"name": "Sufiyan Yusuf"
},
{
"id": "100000517064689",
"name": "LaSs Ilyes"
},
{
"id": "100001889826630",
"name": "Phú Lê Trần"
},
{
"id": "100000357724710",
"name": "Giovanni Orlando"
},
{
"id": "1032324404",
"name": "Todd Zebert"
},
{
"id": "100003042778040",
"name": "Eddy Park"
},
{
"id": "1540670424",
"name": "Sangeeth Sudheer"
},
{
"id": "100000967483965",
"name": "Colin Hon"
},
{
"id": "100004591804129",
"name": "Gabriel Sebastian Moise"
},
{
"id": "1801607669",
"name": "Shahriyer Shuvo"
},
{
"id": "1303312738",
"name": "Ashish Kulkarni"
},
{
"id": "33407282",
"name": "James Yorke"
},
{
"id": "1561690917",
"name": "Daniel Lebredo Acebal"
},
{
"id": "599056736",
"name": "Josh Hungerford"
},
{
"id": "1476421514",
"name": "Josh Stine"
},
{
"id": "1640651161",
"name": "Yeung Yiu Hung"
},
{
"id": "100000088402314",
"name": "Niklas Preschern"
},
{
"id": "543293837",
"name": "Denis Mitlacher"
},
{
"id": "666838353",
"name": "Vick Kumar"
},
{
"id": "100008048773925",
"name": "Jim Cristofono"
}
],
"paging": {
"cursors": {
"after": "MTAwMDA4MDQ4NzczOTI1",
"before": "MTAwMDAwNjI3ODE1MjI1"
},
"next": "https://graph.facebook.com/710123969023949/likes?limit=25&after=MTAwMDA4MDQ4NzczOTI1"
}
}

teraz odpytujemy o udostępnienia:
https://graph.facebook.com/710123969023949/sharedposts
Code:
{
"data": [
{
"id": "333205076699875_743066932380352",
"from": {
"category": "Computers/technology",
"category_list": [
{
"id": "108472109230615",
"name": "Computer Services"
},
{
"id": "162237190493977",
"name": "Computer Training"
},
{
"id": "139823692748565",
"name": "Computers & Electronics"
}
],
"name": "Vita Mortis Tech Support",
"id": "333205076699875"
},
"story": "Vita Mortis Tech Support shared a link.",
"picture": "https://fbexternal-a.akamaihd.net/safe_image.php?d=AQC0UGGf_Lw5PZbB&w=154&h=154&url=http%3A%2F%2Fcdn3.vox-cdn.com%2Fuploads%2Fchorus_image%2Fimage%2F32226757%2FAS2011-12-06_12-05-54_1020.0_cinema_1200.0.jpg",
"link": "http://www.theverge.com/2014/4/27/5658368/two-men-are-tasked-with-taking-care-of-openssl",
"name": "Just two men are tasked with taking care of OpenSSL",
"caption": "www.theverge.com",
"description": "OpenSSL is a key security backbone for untold thousands of websites to make sure strangers can't see what you're doing. But as the Heartbleed bug as revealed, this essential tool is in dire need of...",
"icon": "https://fbstatic-a.akamaihd.net/rsrc.php/v2/yD/r/aS8ecmYRys0.gif",
"actions": [
{
"name": "Comment",
"link": "https://www.facebook.com/333205076699875/posts/743066932380352"
},
{
"name": "Like",
"link": "https://www.facebook.com/333205076699875/posts/743066932380352"
}
],
"privacy": {
"value": ""
},
"type": "link",
"status_type": "shared_story",
"application": {
"name": "Links",
"id": "2309869772"
},
"created_time": "2014-04-28T03:24:46+0000",
"updated_time": "2014-04-28T03:24:46+0000"
}
],
"paging": {
"cursors": {
"after": "NzQzMDY2OTMyMzgwMzUy",
"before": "NzQzMDY2OTMyMzgwMzUy"
}
}
}


no i na koniec o komentarze:
https://graph.facebook.com/710123969023949/comments
Code:
{
"data": [
{
"id": "710123969023949_710133395689673",
"from": {
"id": "100004915352215",
"name": "Haider Alshamma"
},
"message": "It's sad to see that the security protocol that the two-thirds of the internet rely on is underfunded.",
"can_remove": false,
"created_time": "2014-04-28T03:58:57+0000",
"like_count": 9,
"user_likes": false
},
{
"id": "710123969023949_710134955689517",
"from": {
"id": "1365960111",
"name": "Michael Liuzzi"
},
"message": "The watchers on the wall",
"can_remove": false,
"created_time": "2014-04-28T04:07:21+0000",
"like_count": 3,
"user_likes": false
},
{
"id": "710123969023949_710129612356718",
"from": {
"id": "625074251",
"name": "Matt Eskes"
},
"message": "Nah, fanboism aside, they're in the best position to provide funding and manpower to the project, René. I surely wouldn't want to see Oracle sponsor them, and I don't think Canonical has the long term ability to afford the sponsorship.",
"can_remove": false,
"created_time": "2014-04-28T03:41:00+0000",
"like_count": 1,
"user_likes": false
},
{
"id": "710123969023949_710129715690041",
"from": {
"id": "625074251",
"name": "Matt Eskes"
},
"message": "In all fairness, I wouldn't mind seeing El Goog sponsor it, either.",
"can_remove": false,
"created_time": "2014-04-28T03:41:38+0000",
"like_count": 0,
"user_likes": false
},
{
"id": "710123969023949_710125812357098",
"from": {
"id": "625074251",
"name": "Matt Eskes"
},
"message": "It certainly would be nice to see the project sponsored by Red Hat",
"can_remove": false,
"created_time": "2014-04-28T03:26:18+0000",
"like_count": 0,
"user_likes": false
},
{
"id": "710123969023949_710124909023855",
"from": {
"id": "1818030576",
"name": "Anas Suhaimi"
},
"message": "Your making it easy for the non-techies makes it impossible for the nerdy type to really understand the real issue with Heartbleed.",
"can_remove": false,
"created_time": "2014-04-28T03:21:53+0000",
"like_count": 0,
"user_likes": false
},
{
"id": "710123969023949_710125545690458",
"from": {
"id": "1248683076",
"name": "Marcos Caballero"
},
"message": "call it TUMORBLEED",
"can_remove": false,
"created_time": "2014-04-28T03:24:45+0000",
"like_count": 0,
"user_likes": false
}
],
"paging": {
"cursors": {
"after": "Mg==",
"before": "OA=="
}
}
}


Dokumentacja:
https://developers.facebook.com/docs/graph-api/reference/post/

do graph API dostępne jest php-sdk więc spełnia Twoje potrzeby :)
 
na codecanyon jest taki skrypt jak chcesz, ostatnio sie bawie w social media i sam mialem kupowac
 
Mam coś takiego, ale podobno żeby pobrać udostępnienia to jest lipa, bo skrypt woła o token. Ktoś, coś?

Badamy przykładowo ten post: https://www.facebook.com/kwejk.fan/posts/652868828121248
PHP:
<meta charset="utf-8"/>
<?PHP
  

    function getLikes($postID) {
        $link="https://graph.facebook.com/{$postID}/likes";
        $likes = array();
        while(true) {
            if(!$link) break;
            $get = json_decode(file_get_contents($link), true);
            foreach($get["data"] as $like) {
                $likes[] = array(
                    "name" => $like["name"],
                    "id" => $like["id"]
                );
            }
            if(!isset($get["paging"]["next"]))break;
            $link = $get["paging"]["next"];
        }
        return $likes;
    }
  
    $l = getLikes("652868828121248");
    echo "Likes: ".count($l);


?>
 
Last edited:
Czyli trzeba aplikacje? No i jak to będzie działało? Użytkownicy będą musieli coś robić czy skrypt będzie mógł normalnie wyciągnąć lajki, komentarze i udostępnienia?
 
Sam będziesz mógł :)
Zrobisz aplikację, która będzie używała accesstokena Twojego konta.
 
Back
Top