Connect with us

FACEBOOK

Pysa: A Contributor’s Story with Grace Gao

Published

on

The “Contributor’s Story” series is intended to provide a face and voice to our major open source contributors and community members, an overview of the projects they are working on, and the successes and challenges contributors face when developing.

In this blog post, we will be talking to Grace Gao, a Pysa contributor working on a Pysa VSCode plugin through the Major League Hacking (MLH) Fellowship.

“The MLH Fellowship opened up a lot of new possibilities for growth and I’m really grateful to have been part of a community that’s always inspiring me to ‘level up.’”

Tell us a little bit about yourself and your current experience in the MLH Fellowship.

Hi, I’m Grace (she/her) – here’s a bit about me:

  • 1st Year Software Engineering @ University of Waterloo
  • Ottawa, Canada
  • Organizer @ Hack the North, SET.Hacks(), TOHackse
  • Hobbies include: painting, drinking instant coffee, grocery shopping

I joined the MLH Fellowship last fall and this is now my second term contributing as an Open Source Fellow! After graduating high school last year in the midst of a pandemic, I found I had a lot of free time to try out new coding frameworks and play with miscellaneous personal projects. When my friend first introduced me to this program, I recognized the familiar MLH logo from hackathons and it seemed like exactly what I needed to “level up” my learning approach. Despite not having much professional coding or open-source experience, I decided to give it a shot (and I’m really glad I did)!

Where did you first learn about open source? How did you get started using/contributing?

Like most other things, the Internet taught me! When I first started using Github to collaborate on hackathon projects last year, I barely knew anything about open source. At the time, I thought it was just an upgraded version of a cloud drive. As I dove deeper into the online coding community, I found all sorts of cool projects and resources, which were great starting points for learning new technologies (code is a lot less intimidating when someone else already did most of the work). Whenever I’m stuck, Github repositories became my first resort and more often than not, I’d find solid examples to play around with.

See also  Facebook's Blood Donations Feature Is Now Available in 37 Countries

Going into the Fellowship, I only had limited working knowledge of Github and open source, but the people around me were incredibly helpful in catching me up to speed. This was my first time contributing to projects that were maintained and used by other developers, as well as many other ‘firsts’ – my first pull request, my first issue, my first time failing integration tests. Learning to be a good open source citizen has definitely changed the way I approach coding and given me the confidence to become a more active part of this community.

Advertisement
free widgets for website

Describe the project you are currently working on.

Right now, I’m working on Pysa (an open source Python Static Taint Flow Analysis tool from Facebook) along with my teammates Sayd and Sarthak, our mentor Javid and the maintainer Graham. The goal for our team is to build a Pysa VSCode plugin, similar to the existing plugin for Pyre. This would include features such as syntax highlighting, right-click menus, and analyzing Pysa errors for any workspace containing .pysa files.

How did you initially go about tackling the issue?

To get started, I went through a lot of documentation and tutorials for Pyre and Pysa to get a better understanding of the project. The links provided by Graham were especially helpful for learning about the different file formats and how they work, as well as Language Server Extensions in VSCode. Since Pysa is built on top of Pyre (Facebook’s Python type checker), the existing VSCode extension for Pyre was also a great reference point for understanding and building the new Pysa extension.

See also  Vietnam jails Facebook user for 10 years for anti-state posts

What roadblocks or problems have you faced thus far in your contribution?

For me, a major roadblock was getting set up with Pyre onto my laptop. I initially tried to follow the installation docs, but received a lot of low-level errors that prevented me from moving forward. Reading through a similar issue on Github, it seemed that this tool was unfortunately not yet supported on my Apple M1 laptop.

As a workaround, Graham suggested using a Docker container. I ran a Debian image and followed the docs to build from the source, which involved a lot of trial and error, as well as searching for error messages. A couple of dependencies and steps were missing from the docs, but I managed to fill in the blanks and get it up and running, with the help of my team. Since the other fellows had also faced similar challenges building from source, I created a Dockerfile and documented my setup. Afterward, I made a pull request to the project so that future contributors would have an alternative way to get set up quickly using Docker.

What is the current status of development?

So far, my team has completed the first couple of steps to set up the VSCode extension and create the language server. I joined this project a little later in the term, so I’ve mostly been working to catch up to speed and contribute to the Docker image. Currently, we’re working on implementing the plugin features, and I’m trying to set up syntax highlighting for taint.config and .pysa files. To do this, I’m hoping to use a Python syntax highlighter and possibly make some modifications (eg. make the fully qualified function name as a normal function name).

Advertisement
free widgets for website

What have you learned about the project, development, or open source thus far?

Broadly speaking, I’ve learned that picking up new things is not as daunting as it seems. Before this, I didn’t really know where to start with open source or development frameworks and it was intimidating to hear so many unfamiliar technical terms being thrown around casually. Looking back, I think it was mostly a mental block that quickly dissipated when I started working on my team’s projects. Overall, I’m glad that the Fellowship created a welcoming environment that’s given me the confidence to tackle future challenges and get started with contributing.

See also  Palla cocks a snook at 48-hour silence period with Facebook ads

What advice would you give future contributors to the open source project?

I’d say that you should feel free to create issues and add suggestions wherever you feel is right. Although it may not be exactly the issue you’re working on, you might catch a bug or notice a mistake in the docs that could save a lot of trouble for someone else. The Pysa community is very friendly and I’m sure that they would appreciate your ideas, even if your PR is not perfect and you’re unsure about the problem. Also, here’s another tip: don’t try to install Pyre on your Apple M1 when it’s not supported – consider using the new Docker image instead!

We’d like to thank Grace for her continuous contributions to the Facebook Open Source ecosystem. You can follow Grace’s work through her Website, GitHub, and LinkedIn.

If you’d like to learn more about Facebook Open Source, follow us on Twitter, Facebook, and YouTube for relevant updates, and check out the Pysa website for how to get started.

Facebook Developers

Advertisement
free widgets for website
Continue Reading
Advertisement free widgets for website

FACEBOOK

Introducing Facebook Graph API v18.0 and Marketing API v18.0

Published

on

By

introducing-facebook-graph-api-v180-and-marketing-api-v18.0

Today, we are releasing Facebook Graph API v18.0 and Marketing API v18.0. As part of this release, we are highlighting changes below that we believe are relevant to parts of our developer community. These changes include announcements, product updates, and notifications on deprecations that we believe are relevant to your application(s)’ integration with our platform.

For a complete list of all changes and their details, please visit our changelog.

General Updates

Consolidation of Audience Location Status Options for Location Targeting

As previously announced in May 2023, we have consolidated Audience Location Status to our current default option of “People living in or recently in this location” when choosing the type of audience to reach within their Location Targeting selections. This update reflects a consolidation of other previously available options and removal of our “People traveling in this location” option.

We are making this change as part of our ongoing efforts to deliver more value to businesses, simplify our ads system, and streamline our targeting options in order to increase performance efficiency and remove options that have low usage.

This update will apply to new or duplicated campaigns. Existing campaigns created prior to launch will not be entered in this new experience unless they are in draft mode or duplicated.

Advertisement
free widgets for website

Add “add_security_recommendation” and “code_expiration_minutes” to WA Message Templates API

Earlier this year, we released WhatsApp’s authentication solution which enabled creating and sending authentication templates with native buttons and preset authentication messages. With the release of Graph API v18, we’re making improvements to the retrieval of authentication templates, making the end-to-end authentication template process easier for BSPs and businesses.

With Graph API v18, BSPs and businesses can have better visibility into preset authentication message template content after creation. Specifically, payloads will return preset content configuration options, in addition to the text used by WhatsApp. This improvement can enable BSPs and businesses to build “edit” UIs for authentication templates that can be constructed on top of the API.

See also  Facebook Login Updates: A New Limited Data Mode

Note that errors may occur when upgrading to Graph API v18 if BSPs or businesses are taking the entire response from the GET request and providing it back to the POST request to update templates. To resolve, the body/header/footer text fields should be dropped before passing back into the API.

Re-launching dev docs and changelogs for creating Call Ads

  • Facebook Reels Placement for Call Ads

    Meta is releasing the ability to deliver Call Ads through the Facebook Reels platform. Call ads allow users to call businesses in the moment of consideration when they view an ad, and help businesses drive more complex discussions with interested users. This is an opportunity for businesses to advertise with call ads based on peoples’ real-time behavior on Facebook. Under the Ad set Level within Ads Manager, businesses can choose to add “Facebook Reels” Under the Placements section.
  • Re-Launching Call Ads via API

    On September 12, 2023, we’re providing updated guidance on how to create Call Ads via the API. We are introducing documentation solely for Call Ads, so that 3P developers can more easily create Call Ads’ campaigns and know how to view insights about their ongoing call ad campaigns, including call-related metrics. In the future, we also plan to support Call Add-ons via our API platform. Developers should have access to the general permissions necessary to create general ads in order to create Call Ads via the API platform.

    Please refer to developer documentation for additional information.

Deprecations & Breaking Changes

Graph API changes for user granular permission feature

We are updating two graph API endpoints for WhatsAppBusinessAccount. These endpoints are as follows:

  • Retrieve message templates associated with WhatsAppBusiness Account
  • Retrieve phone numbers associated with WhatsAppBusiness Account

With v18, we are rolling out a new feature “user granular permission”. All existing users who are already added to WhatsAppBusinessAccount will be backfilled and will continue to have access (no impact).

The admin has the flexibility to change these permissions. If the admin changes the permission and removes access to view message templates or phone numbers for one of their users, that specific user will start getting an error message saying you do not have permission to view message templates or phone numbers on all versions v18 and older.

Advertisement
free widgets for website

Deprecate legacy metrics naming for IG Media and User Insights

Starting on September 12, Instagram will remove duplicative and legacy, insights metrics from the Instagram Graph API in order to share a single source of metrics to our developers.

This new upgrade reduces any confusion as well as increases the reliability and quality of our reporting.

After 90 days of this launch (i.e. December 11, 2023), we will remove all these duplicative and legacy insights metrics from the Instagram Graph API on all versions in order to be more consistent with the Instagram app.

We appreciate all the feedback that we’ve received from our developer community, and look forward to continuing to work together.

Please review the media insights and user insights developer documentation to learn more.

Advertisement
free widgets for website

Deprecate all Facebook Wi-Fi v1 and Facebook Wi-Fi v2 endpoints

Facebook Wi-Fi was designed to improve the experience of connecting to Wi-Fi hotspots at businesses. It allowed a merchant’s customers to get free Wi-Fi simply by checking in on Facebook. It also allowed merchants to control who could use their Wi-Fi and for how long, and integrated with ads to enable targeting to customers who had used the merchant’s Wi-Fi. This product was deprecated on June 12, 2023. As the partner notice period has ended, all endpoints used by Facebook Wi-Fi v1 and Facebook Wi-Fi v2 have been deprecated and removed.

API Version Deprecations:

As part of Facebook’s versioning schedule for Graph API and Marketing API, please note the upcoming deprecations:

Graph API

  • September 14, 2023: Graph API v11.0 will be deprecated and removed from the platform
  • February 8, 2024: Graph API v12.0 will be deprecated and removed from the platform
  • May 28, 2024: Graph API v13.0 will be deprecated and removed from the platform

Marketing API

  • September 20, 2023: Marketing API v14.0 will be deprecated and removed from the platform
  • September 20, 2023: Marketing API v15.0 will be deprecated and removed from the platform
  • February 06, 2024: Marketing API v16.0 will be deprecated and removed from the platform

To avoid disruption to your business, we recommend migrating all calls to the latest API version that launched today.

Facebook Platform SDK

As part of our 2-year deprecation schedule for Platform SDKs, please note the upcoming deprecations and sunsets:

  • October 2023: Facebook Platform SDK v11.0 or below will be sunset
  • February 2024: Facebook Platform SDK v12.0 or below will be sunset

First seen at developers.facebook.com

See also  Palla cocks a snook at 48-hour silence period with Facebook ads
Continue Reading

FACEBOOK

Allowing Users to Promote Stories as Ads (via Marketing API)

Published

on

By

allowing-users-to-promote-stories-as-ads-(via-marketing-api)

Before today (August 28, 2023), advertisers could not promote images and/or videos used in Instagram Stories as ads via the Instagram Marketing API. This process created unwanted friction for our partners and their customers.

After consistently hearing about this pain point from our developer community, we have removed this unwanted friction for advertisers and now allow users to seamlessly promote their image and/or video media used in Instagram Stories as ads via the Instagram Marketing API as of August 28, 2023.

We appreciate all the feedback received from our developer community, and hope to continue improving your experience.

Please review the developer documentation to learn more.

First seen at developers.facebook.com

Advertisement
free widgets for website
See also  Facebook Login Updates: A New Limited Data Mode
Continue Reading

FACEBOOK

Launching second release of Facebook Reels API: An enterprise solution for desktop and web publishers

Published

on

By

launching-second-release-of-facebook-reels-api:-an-enterprise-solution-for-desktop-and-web-publishers

We’re excited to announce that the second release of FB Reels API is now publicly available for third-party developers. FB Reels API enables users of third-party platforms to share Reels directly to public Facebook Pages and the New Pages Experience.

FB Reels API has grown significantly since the first release in September 2022. The new version of the APIs now support custom thumbnails, automatic music tagging, tagging collaborators, longer format of reels and better error handling.

FB Reels API will also support scheduling and draft capability to allow creators to take advantage of tools provided either by Meta or by our partners. Based on the feedback we received from our partners, we’ll now provide additional audio insights via the Audio Recommendations API and reels performance metrics via the Insights API.

Our goal in the next couple of releases is to continue to make it easier for creators to develop quality content by adding features like early copyright detection and A/B testing. We’re also excited to start working on enhanced creation features like Video clipping- so stay tuned to hear more about those features in the future.

Call-to-Action

If you are a developer interested in integrating with the Facebook Reels API, please refer to the Developer Documents for more info.

Advertisement
free widgets for website

Not sure if this product is for you? Check out our entire suite of sharing offerings.

Tune in to Product @scale event to learn more about FB Video APIs and hear from some of our customers.

First seen at developers.facebook.com

See also  Palla cocks a snook at 48-hour silence period with Facebook ads
Continue Reading

Trending