├── Likes_Counter ├── likes_counter.py └── scrn_shot.PNG ├── README.md ├── Timeline_word_cloud ├── WC.py ├── face_mask.png ├── fb_cloud.py └── nik.png ├── api_utils.py └── multiple_group_post_sharer ├── 2.PNG ├── 3.PNG ├── FBgroups.py ├── checkbox.py ├── csi_publicity.txt ├── post_sharer.py ├── pythonic.txt ├── readme.md └── user_groups.txt /Likes_Counter/likes_counter.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.insert(0,"...\\FacebookGraphAPI_Examples\\") #fill ... with complete path to the parent directory 3 | import api_utils 4 | from tqdm import tqdm #for progress bar 5 | from tabulate import tabulate #for pretty table printing 6 | 7 | 8 | def show_table(friends): 9 | count=0 10 | friends_table=[] 11 | 12 | for friend_name in sorted(friends, key=friends.get, reverse=True): #get top 5 posts likers 13 | count+=1 14 | friends_table.append([friend_name, friends[friend_name]]) 15 | if count == 5: 16 | break 17 | 18 | print tabulate(friends_table,headers=["Name","Likes"],tablefmt="fancy_grid") 19 | return 20 | 21 | 22 | 23 | def main(): 24 | friends={} 25 | myposts = api_utils.get_user_posts() #get all posts on my wall 26 | print "%d posts found on your timeline!\n\nScanning posts\n\n"%(len(myposts)) 27 | 28 | 29 | for post in tqdm(myposts): 30 | likes = api_utils.get_post_likes(post) #get likes details for each post 31 | for like in likes: 32 | if like['name'] in friends.keys(): 33 | friends[like['name']]+=1 34 | else: 35 | friends[like['name']] = 1 36 | 37 | 38 | print "\n\nHere are the people who have liked your posts max. no. of times:\n" 39 | show_table(friends) 40 | 41 | return 42 | 43 | 44 | if __name__ == "__main__": 45 | main() 46 | -------------------------------------------------------------------------------- /Likes_Counter/scrn_shot.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilkumarsingh/FacebookGraphAPI-Examples/71d2f715fd13760e320046a2ac84e2b89858a42b/Likes_Counter/scrn_shot.PNG -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # *FacebookGraphAPI-Examples* 2 | 3 | # Examples this repository contains 4 | - Python script to create a [likes-counter](https://github.com/nikhilkumarsingh/FacebookGraphAPI-Examples/tree/master/Likes_Counter) of your timeline posts. 5 | - Python script to [share your post to multiple groups](https://github.com/nikhilkumarsingh/FacebookGraphAPI-Examples/tree/master/multiple_group_post_sharer) at once! [Click here to see details](https://github.com/nikhilkumarsingh/FacebookGraphAPI-Examples/blob/master/multiple_group_post_sharer/readme.md) 6 | - Python script to create a [Word-Cloud](https://github.com/nikhilkumarsingh/FacebookGraphAPI-Examples/tree/master/Timeline_word_cloud) of your FB timeline. 7 | 8 | # Requirements 9 | - Python 2.X 10 | - Python Facebook-SDK 11 | > pip install facebook-sdk 12 | - Python requests module 13 | > pip install requests 14 | - *For Likes-counter program:* 15 | - tqdm (for progress bar) > pip install tqdm 16 | - tabulate (for fancy table) > pip install tabulate 17 | - *For multiple groups post sharer program:* 18 | - Beautiful Soup (for scraping the user groups from web) > pip install bs4 19 | - Selenium (for scraping the user groups from web) > pip install selenium 20 | - *For timeline wordcloud program:* 21 | - WordCloud > pip install wordcloud 22 | - PIL > pip install Pillow 23 | - Numpy > pip install numpy 24 | - Facebook app user access token.(See the steps below to get a token) 25 | 26 | 27 | # Getting a User Access Token 28 | 29 | - Create a Facebook App which will be used to access Facebook's Graph API. 30 | 31 | - Go to [Facebook Apps dashboard](https://developers.facebook.com/apps) -> Click *Add a New App* -> Choose platform WWW -> Choose a new name for your app -> Click *Create New Facebook App ID* -> Create a New App ID -> Choose Category -> Click *Create App ID* again. 32 | 33 | - Go back to [Apps dashboard](https://developers.facebook.com/apps) -> Select the new app -> Settings -> Basic -> Enter Contact Email. This is required to take your app out of the sandbox. 34 | 35 | - Go to *App Review* -> Do you want to make this app and all its live features available to the general public? -> Toggle the button to Yes -> *Make App Public?* -> Yes. This will enable others to see posts by your app in their timelines - otherwise, only you will see the wall posts by the app. 36 | Now,you should see a green dot next to app's name, and the text This app is public and available to all users. 37 | 38 | - Make a note of the App ID and App Secret (Click *Show* next to it; you will be asked to re-enter your Facebook password). 39 | 40 | - Now,go to [Graph API Explorer](https://developers.facebook.com/tools/explorer) -> In the Application drop down -> Select the app created in Step 2 -> Click *Get Access Token* -> In Permissions popup go to Extended Permissions tab -> Select the permissions you want -> Click *Get Access Token* 41 | 42 | - Make a note of the short-lived token shown in Graph API Explorer. 43 | Facebook has deprecated offline access, the next best thing is long-lived token which expires in 60 days. We will convert the short-lived access token noted above to a long-lived token. 44 | 45 | - For that, fill in the values in the URL below and open it in a browser: 46 | >https://graph.facebook.com/oauth/access_token? 47 | >client_id={APP_ID}& 48 | >client_secret={APP_SECRET}& 49 | >grant_type=fb_exchange_token& 50 | >fb_exchange_token={EXISTING_ACCESS_TOKEN} 51 | 52 | - You should see access_token={...}&expires={...}. This new access_token is the long-lived token you can use in your Python script. 53 | -------------------------------------------------------------------------------- /Timeline_word_cloud/WC.py: -------------------------------------------------------------------------------- 1 | from PIL import Image 2 | import numpy as np 3 | import re 4 | from wordcloud import WordCloud, STOPWORDS 5 | 6 | def clean_text(text): 7 | text = re.sub(r'http[s]?://(?:[a-z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-f][0-9a-f]))+','',text) #remove urls 8 | text = re.sub(r'[^A-Za-z\s]+','',text) #remove everything except alphabets/words 9 | text = text.replace("check",'python') 10 | text = text.replace("using",'') 11 | return text 12 | 13 | 14 | def wcloud(text): 15 | mask = np.array(Image.open("face_mask.png")) #choose mask 16 | stopwords = set(STOPWORDS) 17 | wc = WordCloud(background_color="white", 18 | mask=mask, 19 | max_words=80, 20 | stopwords=stopwords, 21 | width=800, 22 | height=400, 23 | mode="RGB", 24 | relative_scaling=0.5, 25 | ) 26 | 27 | text = clean_text(text) 28 | wc.generate(text) 29 | 30 | #save image 31 | file_name = raw_input("Enter any name for the Word Cloud image:") +'.png' 32 | wc.to_file(file_name) 33 | 34 | return 35 | -------------------------------------------------------------------------------- /Timeline_word_cloud/face_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilkumarsingh/FacebookGraphAPI-Examples/71d2f715fd13760e320046a2ac84e2b89858a42b/Timeline_word_cloud/face_mask.png -------------------------------------------------------------------------------- /Timeline_word_cloud/fb_cloud.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.insert(0,"C:\\Users\\vivek\\Desktop\\nikhil_work\\fb_messenger\\FacebookGraphAPI_Examples\\") 3 | from api_utils import graph,get_all_pages 4 | import WC 5 | 6 | 7 | 8 | def main(): 9 | myposts = graph.get_connections("me",connection_name="feed") #get first page 10 | all_posts = get_all_pages(myposts) #get all posts on my wall 11 | 12 | print "%d posts found on your timeline!\nNow creating word cloud...\n"%(len(all_posts)) 13 | 14 | all_text = ' '.join(post['message'] for post in all_posts[:60] if 'message' in post) #create single string for all posts text 15 | 16 | WC.wcloud(all_text) 17 | return 18 | 19 | 20 | if __name__ == "__main__": 21 | main() 22 | -------------------------------------------------------------------------------- /Timeline_word_cloud/nik.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilkumarsingh/FacebookGraphAPI-Examples/71d2f715fd13760e320046a2ac84e2b89858a42b/Timeline_word_cloud/nik.png -------------------------------------------------------------------------------- /api_utils.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import facebook 3 | 4 | 5 | #authentication 6 | access_token='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' 7 | graph = facebook.GraphAPI(access_token=access_token, version='2.5') 8 | 9 | 10 | def get_all_pages(posts): 11 | allposts=[] 12 | allposts = posts['data'] 13 | while(1): 14 | try: 15 | next_page_url=posts['paging']['next'] #get url for next page 16 | except KeyError: 17 | break 18 | posts = requests.get(next_page_url).json() 19 | allposts += posts['data'] 20 | return allposts 21 | 22 | 23 | 24 | def get_post_likes(post): 25 | mylikes=[] 26 | try: 27 | likes=graph.get_connections(post['id'],"likes") 28 | mylikes = get_all_pages(likes) 29 | except: 30 | pass 31 | return mylikes 32 | 33 | 34 | def get_liked_pages(): 35 | mypages=[] 36 | pages = graph.get_connections('me',connection_name='likes') 37 | mypages = get_all_pages(pages) 38 | return mypages 39 | 40 | 41 | def get_user_posts(): 42 | myposts=[] 43 | 44 | #get my posts on page 1 45 | posts = graph.get_connections('me',connection_name='posts') 46 | #visit all pages 47 | myposts = get_all_pages(posts) 48 | return myposts 49 | 50 | 51 | def get_user_details(): 52 | #graph api does not allow to access all fields at once...so you have to list the fields you require! 53 | user = graph.get_object('me',fields='name,id,email,education,friends,age_range,birthday') 54 | return user 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /multiple_group_post_sharer/2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilkumarsingh/FacebookGraphAPI-Examples/71d2f715fd13760e320046a2ac84e2b89858a42b/multiple_group_post_sharer/2.PNG -------------------------------------------------------------------------------- /multiple_group_post_sharer/3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikhilkumarsingh/FacebookGraphAPI-Examples/71d2f715fd13760e320046a2ac84e2b89858a42b/multiple_group_post_sharer/3.PNG -------------------------------------------------------------------------------- /multiple_group_post_sharer/FBgroups.py: -------------------------------------------------------------------------------- 1 | from selenium import webdriver 2 | from bs4 import BeautifulSoup 3 | 4 | 5 | def get_groups(): 6 | browser = webdriver.Firefox() 7 | browser.get('https://m.facebook.com/login') 8 | 9 | username = raw_input("Enter username:") 10 | password = raw_input("Enter password:") 11 | 12 | emailElem = browser.find_element_by_name('email') 13 | emailElem.send_keys(username) 14 | passwordElem = browser.find_element_by_name('pass') 15 | passwordElem.send_keys(password) 16 | passwordElem.submit() 17 | 18 | browser.get('https://m.facebook.com/groups/?seemore') 19 | html_source = browser.page_source 20 | soup = BeautifulSoup(html_source) 21 | 22 | groups=[] 23 | 24 | for link in soup.findAll('a'): 25 | if 'groups' in link['href'] and 'create' not in link['href']: 26 | group={} 27 | group['id'] = (link['href'].split('/')[2]).split('?')[0] 28 | group['name'] = link.get_text() 29 | groups.append(group) 30 | 31 | browser.quit() 32 | return groups 33 | -------------------------------------------------------------------------------- /multiple_group_post_sharer/checkbox.py: -------------------------------------------------------------------------------- 1 | import Tkinter as tk 2 | 3 | 4 | class CHECKBOX(): 5 | def __init__(self,mylist): 6 | self.root = tk.Tk() 7 | self.cb = [] # check_buttons 8 | self.cb_v = [] # check_button_values 9 | self.checked = [] 10 | 11 | self.frame = tk.Frame(self.root,width=300,height=300) 12 | self.frame.grid(row = 0,column = 0) 13 | 14 | self.vsb = tk.Scrollbar(self.frame, orient="vertical") 15 | self.text = tk.Text(self.frame, width=40, height=20,bg="light blue", 16 | yscrollcommand=self.vsb.set) 17 | self.vsb.config(command=self.text.yview) 18 | self.vsb.pack(side="right", fill="y") 19 | 20 | 21 | 22 | for ix,btext in enumerate(mylist): 23 | self.cb_v.append(tk.IntVar()) 24 | self.cb.append(tk.Checkbutton(self.frame, text=btext, variable=self.cb_v[ix], command=self.cb_checked, bg = "light blue")) 25 | self.cb[ix].grid(row=ix, column=0, sticky='w') 26 | self.text.window_create("end", window=self.cb[ix]) 27 | self.text.insert("end", "\n") 28 | 29 | self.text.pack(side="left", fill="both", expand=True) 30 | 31 | 32 | self.label = tk.Label(self.root, width=50,bg = 'light green') 33 | self.label.grid(row=ix+1, column=0, sticky='w') 34 | self.button_label = tk.Label(self.root, width=20) 35 | self.button_label.grid(row=ix+2, column=0, sticky='s') 36 | self.button = tk.Button(self.button_label, text='Done',command = self.result) 37 | self.button.pack() 38 | 39 | self.root.mainloop() 40 | 41 | 42 | def result(self): 43 | for ix,item in enumerate(self.cb): 44 | if self.cb_v[ix].get(): 45 | self.checked.append(1) 46 | else: 47 | self.checked.append(0) 48 | self.root.destroy() 49 | 50 | def cb_checked(self): 51 | self.label['text'] = '' 52 | for ix, item in enumerate(self.cb): 53 | if self.cb_v[ix].get(): 54 | self.label['text'] += item['text'] + '\n' 55 | -------------------------------------------------------------------------------- /multiple_group_post_sharer/csi_publicity.txt: -------------------------------------------------------------------------------- 1 | [{"id": "1082263245177758", "name": "DTU Freshers 2016"}, {"id": "1499558953670367", "name": "CSI-DTU 2K15"}, {"id": "992961704100821", "name": "DTU - Class of 2019"}, {"id": "1436759699987951", "name": "DTU BATCH 2015 - 2019"}, {"id": "120158564731808", "name": "NSIT- DTU"}, {"id": "1461847024121632", "name": "A1 2K15 COE DTU"}, {"id": "824437830921649", "name": "DTU FRESHERS (2014-2018)"}, {"id": "244927092194415", "name": "Engineers of Delhi Technological University"}, {"id": "577425645629053", "name": "DTU Freshers ( Fuchha ) 2013"}, {"id": "178990525616291", "name": "DTU (2013-2017)"}, {"id": "187063971305686", "name": "CSI-DTU"}, {"id": "1434870366841954", "name": "DTU Freshers ( 2015-19)"}, {"id": "1652661711636729", "name": "DTU 2k15-2k19 (Platinum Batch)"}, {"id": "1592861777630945", "name": "DTU Freshers 2015"}, {"id": "1176691075690540", "name": "DTU 2K15 Batch"}, {"id": "222348317800360", "name": "DTU Interactive Forum"}] -------------------------------------------------------------------------------- /multiple_group_post_sharer/post_sharer.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.insert(0,"...\\FacebookGraphAPI_Examples\\") #fill ... with complete path to the parent directory 3 | from api_utils import graph 4 | from checkbox import CHECKBOX 5 | import json 6 | import FBgroups 7 | from time import sleep 8 | from random import random 9 | 10 | ''' 11 | A collection is a list of groups. 12 | We can post to a complete collection at one time. 13 | ''' 14 | 15 | def update_group_info(): 16 | all_groups = FBgroups.get_groups() 17 | with open('user_groups.txt','w') as f: 18 | f.write(json.dumps(all_groups)) 19 | print "FB groups info updated." 20 | return 21 | 22 | 23 | 24 | def add_groups(collection,collection_name): 25 | with open('user_groups.txt','r') as f: 26 | all_groups = json.load(f) 27 | 28 | all_groups = [group for group in all_groups if group not in collection] 29 | group_names = [group['name'] for group in all_groups] 30 | groups_selected = CHECKBOX(group_names).checked 31 | 32 | for x in range(len(all_groups)): 33 | if groups_selected[x]: 34 | collection.append(all_groups[x]) 35 | 36 | with open(collection_name+".txt",'w') as myfile: 37 | myfile.write(json.dumps(collection)) 38 | 39 | return 40 | 41 | 42 | def create_collection(): 43 | opt = raw_input("Update an existing collection?(y/n):") 44 | 45 | if opt == 'y': 46 | collection,collection_name = open_collection() 47 | if collection == None: 48 | return 49 | else: 50 | collection_name = raw_input("Choose a name for your new collection:") 51 | collection = [] 52 | 53 | while(1): 54 | add_groups(collection,collection_name) 55 | opt = raw_input("Add more groups to this collection?(y/n):") 56 | if opt == 'n': 57 | break 58 | 59 | print "Done" 60 | return 61 | 62 | 63 | def open_collection(): 64 | collection_name = raw_input("Enter collection name:") 65 | 66 | try: 67 | with open(collection_name+".txt",'r') as myfile: 68 | collection = json.load(myfile) 69 | except IOError: 70 | print "No such collection found." 71 | return 72 | 73 | return collection,collection_name 74 | 75 | 76 | def show_collection(): 77 | collection,collection_name = open_collection() 78 | 79 | if collection == None: 80 | return 81 | 82 | print "%s collection contains following groups:"%(collection_name) 83 | for group in collection: 84 | print group['name'].encode("utf8") 85 | 86 | return 87 | 88 | 89 | def share_post(): 90 | collection = open_collection() 91 | link = raw_input("Enter the link of the post you want to share:") 92 | message = raw_input("Enter the message for shared post:") 93 | for group in collection: 94 | sleep(10*(random())) 95 | try: 96 | graph.put_object(parent_object = group['id'], connection_name = 'feed', message=message, link=link) 97 | print "Post successfully shared with %s"%(group['name'].encode('utf8')) 98 | except: 99 | print "Post can't be shared with %s"%(group['name'].encode('utf8')) 100 | pass 101 | return 102 | 103 | 104 | 105 | 106 | 107 | def main(): 108 | print ''' 109 | Use following commands:\n 110 | 1. 'create' to create or update a collection. 111 | 2. 'show' to see groups in a collection. 112 | 3. 'share' to share a post to any collection. 113 | 4. 'update' to update the FB groups info. 114 | 5. 'exit' to exit the program.\n 115 | P.S: A collection is a list of groups. 116 | ''' 117 | while(1): 118 | opt = raw_input('\n>>>') 119 | if opt == 'create': 120 | create_collection() 121 | elif opt == 'show': 122 | show_collection() 123 | elif opt == 'share': 124 | share_post() 125 | elif opt == 'update': 126 | update_group_info() 127 | elif opt == 'exit': 128 | break 129 | else: 130 | print "Unknown command." 131 | 132 | return 133 | 134 | 135 | 136 | if __name__=="__main__": 137 | main() 138 | 139 | 140 | 141 | 142 | 143 | -------------------------------------------------------------------------------- /multiple_group_post_sharer/pythonic.txt: -------------------------------------------------------------------------------- 1 | [{"id": "136684736369461", "name": "Python Programming Language"}, {"id": "457660044251817", "name": "Python Programming Language"}, {"id": "183301008765241", "name": "Python learning"}, {"id": "213747765624221", "name": "Python Programming Discussion Group"}, {"id": "395718663826237", "name": "Python Developer\u2019s"}, {"id": "714685238558448", "name": "Python Programming Society"}, {"id": "535001439850941", "name": "Python Programmers"}, {"id": "27388384578", "name": "Python"}, {"id": "210791805618457", "name": "Python Programmers Community"}, {"id": "595199983912471", "name": "Python Delhi User Group"}, {"id": "1516709475279856", "name": "Python - community"}, {"id": "745928938834503", "name": "Python Programmers"}, {"id": "476912762328914", "name": "An Introduction to Interactive Programming in Python (Rice Univ - Coursera)"}, {"id": "595215043943732", "name": "Python (Programming Language)"}] -------------------------------------------------------------------------------- /multiple_group_post_sharer/readme.md: -------------------------------------------------------------------------------- 1 | - You will have to clone the complete repo to use this program. 2 | - A 'collection' is a collection of groups. 3 | - You can share same post to one collection with same message in a single click! 4 | - Collections are stored as JSON data in .txt files so you can create different collections for different purposes and once made...use them anytime! 5 | - Facebook Graph API does not allow to access the details of the groups of which the user is a 'member' except the groups he/she is an 'admin' of.So we have 'update' command to scrape the groups of user(see [FBgroups.py](https://github.com/nikhilkumarsingh/FacebookGraphAPI-Examples/blob/master/multiple_group_post_sharer/FBgroups.py)) and save them in [user_groups.txt](https://github.com/nikhilkumarsingh/FacebookGraphAPI-Examples/blob/master/multiple_group_post_sharer/user_groups.txt) file. 6 | - As you type 'create' command and create a collection...a list of groups is obtained in a pretty checkbox list(made using Tkinter GUI). 7 | The selected groups are added to the collection. The collections could be updated as well! 8 | - To share your post...all you need is a [User Access Token](https://github.com/nikhilkumarsingh/FacebookGraphAPI-Examples/blob/master/README.md) 9 | and the link to the post you want to share to the collection! 10 | You can also add some additional message to the shared post! 11 | 12 | Here are a few screenshots: 13 | ![scrnshot1](https://raw.githubusercontent.com/nikhilkumarsingh/FacebookGraphAPI-Examples/master/multiple_group_post_sharer/2.PNG) 14 | ![scrnshot2](https://raw.githubusercontent.com/nikhilkumarsingh/FacebookGraphAPI-Examples/master/multiple_group_post_sharer/3.PNG) 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /multiple_group_post_sharer/user_groups.txt: -------------------------------------------------------------------------------- 1 | [{"id": "136684736369461", "name": "Python Programming Language"}, {"id": "457660044251817", "name": "Python Programming Language"}, {"id": "183301008765241", "name": "Python learning"}, {"id": "213747765624221", "name": "Python Programming Discussion Group"}, {"id": "395718663826237", "name": "Python Developer\u2019s"}, {"id": "714685238558448", "name": "Python Programming Society"}, {"id": "535001439850941", "name": "Python Programmers"}, {"id": "551769771544048", "name": "DTU : Open Source Software Development (SIG)"}, {"id": "27388384578", "name": "Python"}, {"id": "1400500393608561", "name": "Free Code Camp Delhi"}, {"id": "455319121307607", "name": "CS101"}, {"id": "230684616986299", "name": "Software Development"}, {"id": "1082263245177758", "name": "DTU Freshers 2016"}, {"id": "1921216398103761", "name": "DTU Programming Club"}, {"id": "210791805618457", "name": "Python Programmers Community"}, {"id": "1499558953670367", "name": "CSI-DTU 2K15"}, {"id": "595199983912471", "name": "Python Delhi User Group"}, {"id": "143249362488416", "name": "Algorithms IDG"}, {"id": "1819310914962065", "name": "CodeForIndia-Delhi"}, {"id": "135851669916203", "name": "Computer Science"}, {"id": "226823534127108", "name": "C/C++ Programming"}, {"id": "481229391977349", "name": "Code Masters (Computer programming)"}, {"id": "115194395496242", "name": "NSIT Open Source Development Group"}, {"id": "148832365256556", "name": "Programming"}, {"id": "103200526419802", "name": "The Hacker News"}, {"id": "300338173416888", "name": "C++ : Coding Guru"}, {"id": "172405079443825", "name": "Programmer"}, {"id": "186653948031720", "name": "OpenCV"}, {"id": "572509762878848", "name": "GTBIT Programming Club"}, {"id": "164185914000933", "name": "Hackathon Hunters \udbb9\udfed \udbb9\udfdb"}, {"id": "525718524197758", "name": "DTU notes"}, {"id": "358441987567360", "name": "Computer Tips and Internet Tricks"}, {"id": "653464328050091", "name": "Networking & Security"}, {"id": "1601404966741136", "name": "Data Science With R"}, {"id": "117100191964810", "name": "Facebook Tricks"}, {"id": "1572737869620568", "name": "Delhi Helpost"}, {"id": "2204699101", "name": "C++"}, {"id": "197199077146724", "name": "I'm a Developer"}, {"id": "806795652692383", "name": "Hackers Everywhere !!!"}, {"id": "348089755226517", "name": "Computer problems and solutions"}, {"id": "101597323320655", "name": "CS50"}, {"id": "173670499475155", "name": "Computer Hacking Tricks and Tips"}, {"id": "1033204746763089", "name": "FACEBOOK SHARE/JOIN"}, {"id": "103235839754287", "name": "Data Mining and Predictive Analytics News"}, {"id": "1599888790291960", "name": "Startup Delhi"}, {"id": "529561097090498", "name": "Facebook App Developers"}, {"id": "1516709475279856", "name": "Python - community"}, {"id": "743110745751149", "name": "Web Developers"}, {"id": "296195560475117", "name": "Computer Tips and Hacking Tricks"}, {"id": "249598592040574", "name": "Facebook Developer Circle: Delhi, NCR"}, {"id": "114609428571319", "name": "GATE Computer Science"}, {"id": "333283916693071", "name": "JIIT Programming Hub"}, {"id": "213717218645110", "name": "Artificial Intelligence"}, {"id": "1654190651465997", "name": "DCEPF coding"}, {"id": "414315745355605", "name": "Course Hackers"}, {"id": "1018888274867803", "name": "delhi-ncr startup"}, {"id": "465747676834716", "name": "Programmers Place (share your ideas, codes and Problems)"}, {"id": "481636145265059", "name": "Hacks and Security"}, {"id": "1436759699987951", "name": "DTU BATCH 2015 - 2019"}, {"id": "1437534249880113", "name": "CODERS"}, {"id": "745928938834503", "name": "Python Programmers"}, {"id": "2272855520", "name": "Django Web Framework"}, {"id": "1144800942203313", "name": "WatchLiveCoding"}, {"id": "476912762328914", "name": "An Introduction to Interactive Programming in Python (Rice Univ - Coursera)"}, {"id": "861107493922949", "name": "Machine Learning / Big Data / Analytics"}, {"id": "183239481757120", "name": "Django Developers"}, {"id": "595215043943732", "name": "Python (Programming Language)"}, {"id": "411741268877125", "name": "Django Python Web Framework"}, {"id": "728419453940498", "name": "Did you know?"}, {"id": "1425327767734238", "name": "Internships"}, {"id": "352180094984515", "name": "Delhi Startups Connect / Freelancing"}, {"id": "5582633474", "name": "Data Mining / Machine Learning / AI"}, {"id": "125459504296700", "name": "Tapori paltan \ud83d\ude08"}, {"id": "456862367730973", "name": "CodeChef Campus Chapters"}, {"id": "154102324685493", "name": "IIT Delhi"}, {"id": "421101457978931", "name": "DCE Placement Fundas"}, {"id": "222348317800360", "name": "DTU Interactive Forum"}, {"id": "1518469338374433", "name": "DCE, Delhi Tech. University - Internships"}, {"id": "120158564731808", "name": "NSIT- DTU"}, {"id": "992961704100821", "name": "DTU - Class of 2019"}, {"id": "1461847024121632", "name": "A1 2K15 COE DTU"}, {"id": "250623101637893", "name": "MAIT"}, {"id": "824437830921649", "name": "DTU FRESHERS (2014-2018)"}, {"id": "741060312615772", "name": "Delhi University"}, {"id": "244927092194415", "name": "Engineers of Delhi Technological University"}, {"id": "577425645629053", "name": "DTU Freshers ( Fuchha ) 2013"}, {"id": "178990525616291", "name": "DTU (2013-2017)"}, {"id": "187063971305686", "name": "CSI-DTU"}, {"id": "1434870366841954", "name": "DTU Freshers ( 2015-19)"}, {"id": "1652661711636729", "name": "DTU 2k15-2k19 (Platinum Batch)"}, {"id": "252151621515360", "name": "DCE-Programmers"}, {"id": "111522332259669", "name": "Kendriya Vidyalaya Sec-8, Rohini"}, {"id": "1092288474122426", "name": "Forgotten Home"}, {"id": "186275358223762", "name": "CSI DTU C++/CODING IDG"}, {"id": "114308295358200", "name": "DCE Coders"}, {"id": "1592861777630945", "name": "DTU Freshers 2015"}, {"id": "1176691075690540", "name": "DTU 2K15 Batch"}] --------------------------------------------------------------------------------