001/* 002 * Copyright (c) 2010-2024 Mark Allen, Norbert Bartels. 003 * 004 * Permission is hereby granted, free of charge, to any person obtaining a copy 005 * of this software and associated documentation files (the "Software"), to deal 006 * in the Software without restriction, including without limitation the rights 007 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 008 * copies of the Software, and to permit persons to whom the Software is 009 * furnished to do so, subject to the following conditions: 010 * 011 * The above copyright notice and this permission notice shall be included in 012 * all copies or substantial portions of the Software. 013 * 014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 015 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 016 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 017 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 018 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 019 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 020 * THE SOFTWARE. 021 */ 022package com.restfb.scope; 023 024import com.restfb.annotation.GraphAPI; 025 026/** 027 * Please check the permission dependencies 028 * <a href="https://developers.facebook.com/docs/pages/overview-1#permission-dependencies">here</a> 029 */ 030public enum FacebookPermissions { 031 /** 032 * Provides access to a subset of items that are part of a person's public profile. 033 * 034 * A person's public profile refers to the following properties on the user object by default: 035 * <ul> 036 * <li>id</li> 037 * <li>name</li> 038 * <li>first_name</li> 039 * <li>last_name</li> 040 * <li>link</li> 041 * <li>gender</li> 042 * <li>locale</li> 043 * <li>timezone</li> 044 * <li>updated_time</li> 045 * <li>verified</li> 046 * </ul> 047 * 048 * On the web, public_profile is implied with every request and isn't required, although the best practice is to 049 * declare it. On iOS and Android, you must manually request it as part of your login flow.<br /> 050 * <br /> 051 * 052 * gender & locale can only be accessed if: 053 * 054 * <ul> 055 * <li>The person queried is the person using the app.</li> 056 * <li>The person queried is using the app, and is a friend of the person using the app.</li> 057 * <li>The person queried is using the app, is not a friend of the person using the app, but the app includes either 058 * an app access token or an <code>appsecret_proof</code> argument with the call.</li> <br /> 059 * <strong>Review</strong> Your app may use this permission without review from Facebook. 060 */ 061 PUBLIC_PROFILE("public_profile", Category.PUBLIC), // 062 063 /** 064 * Provides access to a person's age range. 065 * 066 * <p> 067 * <strong>Review</strong> 068 * 069 * <p> 070 * If your app requests this permission Facebook will have to review how your app uses it. 071 */ 072 @GraphAPI(since = "3.0") 073 USER_AGE_RANGE("user_age_range", Category.USER_DATA), // 074 075 /** 076 * Access the date and month of a person's birthday. This may or may not include the person's year of birth, dependent 077 * upon their privacy settings and the access token being used to query this field. 078 * 079 * <p> 080 * Please note most integrations will only need age_range which comes as part of the public_profile permission. 081 * 082 * <p> 083 * <strong>Review</strong> 084 * 085 * <p> 086 * If your app requests this permission Facebook will have to review how your app uses it. 087 */ 088 USER_BIRTHDAY("user_birthday", Category.USER_DATA), // 089 090 /** 091 * Provides read-only access to the Events a person is hosting or has RSVP'd to. 092 * 093 * <p> 094 * <strong>Review</strong> 095 * 096 * <p> 097 * If your app requests this permission Facebook will have to review how your app uses it. 098 */ 099 USER_EVENTS("user_events", Category.EVENTS_GROUPS_PAGES), // 100 101 /** 102 * Provides access the list of friends that also use your app. These friends can be found on the friends edge on the 103 * user object. 104 * 105 * <p> 106 * In order for a person to show up in one person's friend list, both people must have decided to share their list of 107 * friends with your app and not disabled that permission during login. Also both friends must have been asked for 108 * <code>user_friends</code> during the login process. 109 * 110 * <p> 111 * <strong>Review</strong> 112 * 113 * <p> 114 * Your app may use this permission without review from Facebook. 115 */ 116 USER_FRIENDS("user_friends", Category.USER_DATA), // 117 118 /** 119 * Provides access to a person's gender. 120 * 121 * <p> 122 * <strong>Review</strong> 123 * 124 * <p> 125 * If your app requests this permission Facebook will have to review how your app uses it. 126 */ 127 @GraphAPI(since = "3.0") 128 USER_GENDER("user_gender", Category.USER_DATA), // 129 130 /** 131 * Provides access to a person's hometown location through the hometown field on the User object. This is set by the 132 * user on the Profile. 133 * 134 * <p> 135 * <strong>Review</strong> 136 * 137 * <p> 138 * If your app requests this permission Facebook will have to review how your app uses it. 139 */ 140 USER_HOMETOWN("user_hometown", Category.USER_DATA), // 141 142 /** 143 * Provides access to the list of all Facebook Pages and Open Graph objects that a person has liked. This list is 144 * available through the likes edge on the User object. 145 * 146 * <p> 147 * <strong>Review</strong> 148 * 149 * <p> 150 * If your app requests this permission Facebook will have to review how your app uses it. 151 */ 152 USER_LIKES("user_likes", Category.USER_DATA), // 153 154 /** 155 * Provides access to the Facebook profile URL for another user of the app. 156 * 157 * <p> 158 * <strong>Review</strong> 159 * 160 * <p> 161 * If your app requests this permission Facebook will have to review how your app uses it. 162 */ 163 @GraphAPI(since = "3.0") 164 USER_LINK("user_link", Category.USER_DATA), // 165 166 /** 167 * Provides access to a person's current city through the location field on the User object. The current city is set 168 * by a person on their Profile. 169 * 170 * <p> 171 * The current city is not necessarily the same as a person's hometown. 172 * 173 * <p> 174 * <strong>Review</strong> 175 * 176 * <p> 177 * If your app requests this permission Facebook will have to review how your app uses it. 178 */ 179 USER_LOCATION("user_location", Category.USER_DATA), // 180 181 /** 182 * Enables your app to read the Groups a person is an admin of through the groups edge on the User object. 183 * 184 * <p> 185 * This permission does not allow you to create groups on behalf of a person. It is not possible to create groups via 186 * the Graph API. This does not let you read the groups a user is just a member of. 187 * 188 * <p> 189 * This permission is being deprecated as Groups is moving to a new permission model for apps. Please continue to use 190 * {@code user_managed_groups} for testing your apps in dev mode. However, when submitting for review, please select 191 * the reviewable feature Groups API, and do not submit this {@code user_managed_groups} in your review. 192 * 193 * <p> 194 * <b>Limited use: for testing only</b> 195 */ 196 USER_MANAGED_GROUPS("user_managed_groups", Category.EVENTS_GROUPS_PAGES), // 197 198 /** 199 * The user_messenger_contact permission allows a business to contact a person via Messenger upon their approval or 200 * initiation of a chat thread with the business's Page. 201 * 202 * <p> 203 * The allowed usage for this permission is for a Page to send a person an initial message, post—purchase updates and 204 * account updates. 205 * 206 * <strong>Review</strong> 207 * 208 * <p> 209 * If your app requests this permission Facebook will have to review how your app uses it. 210 */ 211 USER_MESSENGER_CONTACT("user_messenger_contact", Category.EVENTS_GROUPS_PAGES), // 212 213 /** 214 * Provides access to the photos a person has uploaded or been tagged in. This is available through the photos edge on 215 * the User object. 216 * 217 * <p> 218 * <strong>Review</strong> 219 * 220 * <p> 221 * If your app requests this permission Facebook will have to review how your app uses it. 222 */ 223 USER_PHOTOS("user_photos", Category.USER_DATA), // 224 225 /** 226 * Provides access to the posts on a person's Timeline. 227 * 228 * <p> 229 * Includes their own posts, posts they are tagged in, and posts other people make on their Timeline. 230 * 231 * <p> 232 * <strong>Review</strong> 233 * 234 * <p> 235 * If your app requests this permission Facebook will have to review how your app uses it. 236 * 237 * @since 1.10.0 238 */ 239 USER_POSTS("user_posts", Category.USER_DATA), // 240 241 /** 242 * Provides access to the Places a person has been tagged at in photos, videos, statuses and links. 243 * 244 * <p> 245 * <strong>Review</strong> 246 * 247 * <p> 248 * If your app requests this permission Facebook will have to review how your app uses it. 249 */ 250 USER_TAGGED_PLACES("user_tagged_places", Category.USER_DATA), // 251 252 /** 253 * Provides access to the videos a person has uploaded or been tagged in. 254 * 255 * <p> 256 * <strong>Review</strong> 257 * 258 * <p> 259 * If your app requests this permission Facebook will have to review how your app uses it. 260 */ 261 USER_VIDEOS("user_videos", Category.USER_DATA), // 262 263 /** 264 * Provides the ability to both read and manage the ads for ad accounts you have access to. Please see 265 * <a href="https://developers.facebook.com/docs/marketing-api/buying-api">Ads Management</a> for details. 266 */ 267 ADS_MANAGEMENT("ads_management", Category.EVENTS_GROUPS_PAGES), // 268 269 /** 270 * Provides the access to <a href="https://developers.facebook.com/docs/marketing-api/read-access-onboarding">Ads 271 * Insights API</a> to pull ads report information for ad accounts you have access to. 272 */ 273 ADS_READ("ads_read", Category.EVENTS_GROUPS_PAGES), // 274 275 /** 276 * The attribution_read permission grants your app access to the Attribution API to pull attribution report data for 277 * lines of business you own or have been granted access to by the owner or owners of other lines of business. 278 * 279 * Allowed Usage 280 * 281 * Provides the ability for your app to access ads performance data from Attribution for use in custom dashboards and 282 * data analytics. 283 */ 284 ATTRIBUTION_READ("attribution_read", Category.EVENTS_GROUPS_PAGES), // 285 286 /** 287 * Provides access to the person's primary email address via the email property on the user object. 288 * 289 * <p> 290 * Do not spam users. Your use of email must comply with both Facebook policies and with the CAN-SPAM Act. 291 * 292 * <p> 293 * Note, even if you request the email permission it is not guaranteed you will get an email address. For example, if 294 * someone signed up for Facebook with a phone number instead of an email address, the email field may be empty. 295 * 296 * <p> 297 * <strong>Review</strong> 298 * 299 * <p> 300 * Your app may use this permission without review from Facebook. 301 */ 302 EMAIL("email", Category.USER_DATA), // 303 304 /** 305 * The page_events permissions allows your app permission to log events on behalf of Facebook Pages administered by 306 * people using your app and to send those events to Facebook for ads targeting, optimization and reporting. 307 * 308 * <b>Allowed Usage</b> 309 * 310 * Send businesses related activities (for example purchase, add-to-cart, lead) on behalf of Pages owned by the people 311 * who use your app. 312 */ 313 PAGES_EVENTS("pages_events", Category.EVENTS_GROUPS_PAGES), // 314 315 /** 316 * The {@code pages_manage_ads} permission allows your app the ability to manage ads associated with the Page. 317 * 318 * <p> 319 * You can use this permission to create and manage ads for the Page. 320 * 321 * <p> 322 * <strong>Review</strong> 323 * 324 * <p> 325 * If your app requests this permission Facebook will have to review how your app uses it. 326 * 327 * @since June 1, 2020 328 */ 329 PAGES_MANAGE_ADS("pages_manage_ads", Category.EVENTS_GROUPS_PAGES), // 330 331 /** 332 * The {@code pages_manage_metadata} permission allows you to subscribe and receive webhooks about activity on the 333 * Page, and to update settings on the Page. 334 * 335 * <p> 336 * You can use this permission if you need it to help the Page Admin administer and manage the Page. 337 * 338 * <p> 339 * <strong>Review</strong> 340 * 341 * <p> 342 * If your app requests this permission Facebook will have to review how your app uses it. 343 * 344 * @since June 1, 2020 345 */ 346 PAGES_MANAGE_METADATA("pages_manage_metadata", Category.EVENTS_GROUPS_PAGES), // 347 348 /** 349 * The {@code pages_read_engagement} permission allows your app the ability to read content (posts, photos, videos, 350 * events) posted by the Page, read followers data including name, PSID, and profile picture, and read metadata and 351 * other insights about the Page. 352 * 353 * <p> 354 * You can use this permission if you need it to help the Page Admin administer and manage the Page. 355 * 356 * <p> 357 * <strong>Review</strong> 358 * 359 * <p> 360 * If your app requests this permission Facebook will have to review how your app uses it. 361 * 362 * @since June 1, 2020 363 */ 364 PAGES_READ_ENGAGEMENT("pages_read_engagement", Category.EVENTS_GROUPS_PAGES), // 365 366 /** 367 * The {@code pages_read_user_content} permission allows your app the ability to read User generated content on the 368 * Page, such as posts, comments, and ratings by Users or other Pages, and to delete User comments on Page posts. 369 * 370 * <p> 371 * It also allows your app to read posts that the Page is tagged in. 372 * 373 * <p> 374 * You can use this permission to read Users and other Page’s content posted on the Page if you need it to help manage 375 * the Page. 376 * 377 * <p> 378 * <strong>Review</strong> 379 * 380 * <p> 381 * If your app requests this permission Facebook will have to review how your app uses it. 382 * 383 * @since June 1, 2020 384 */ 385 PAGES_READ_USER_CONTENT("pages_read_user_content", Category.EVENTS_GROUPS_PAGES), // 386 387 /** 388 * Provides the access to manage call to actions of the Pages that you manage. 389 * 390 * <p> 391 * <strong>Review</strong> 392 * 393 * <p> 394 * If your app requests this permission Facebook will have to review how your app uses it. 395 */ 396 @GraphAPI(since = "2.5") 397 PAGES_MANAGE_CTA("pages_manage_cta", Category.EVENTS_GROUPS_PAGES), // 398 399 /** 400 * Lets your app manage Instant Articles on behalf of Facebook Pages administered by people using your app. 401 * 402 * <p> 403 * <strong>Review</strong> 404 * 405 * <p> 406 * If your app requests this permission Facebook will have to review how your app uses it. 407 */ 408 @GraphAPI(since = "2.5") 409 PAGES_MANAGE_INSTANT_ARTICLES("pages_manage_instant_articles", Category.EVENTS_GROUPS_PAGES), // 410 411 /** 412 * Provides access to manage leads retrieved from Lead Ads of the Pages that you manage. 413 * 414 * <p> 415 * <strong>Review</strong> 416 * 417 * <p> 418 * If your app requests this permission Facebook will have to review how your app uses it. 419 */ 420 @GraphAPI(since = "2.3") 421 PAGES_MANAGE_LEADS("pages_manage_leads", Category.EVENTS_GROUPS_PAGES), // 422 423 /** 424 * This allows you to send and receive messages through a Facebook Page. 425 * 426 * <p> 427 * This permission cannot be used to send promotional or advertising content. Conversations through this API can only 428 * begin when someone indicates—through a Messenger plugin or directly messaging you—that they want to receive 429 * messages from you. 430 * 431 * <p> 432 * <strong>Review</strong> 433 * 434 * <p> 435 * If your app requests this permission Facebook will have to review how your app uses it. 436 */ 437 @GraphAPI(since = "2.6") 438 PAGES_MESSAGING("pages_messaging", Category.MESSAGING), // 439 440 /** 441 * This allows you to send and receive messages through a Facebook Page. 442 * 443 * <p> 444 * This permission cannot be used to send promotional or advertising content. Conversations through this API can only 445 * begin when someone indicates—through a Messenger plugin or directly messaging you—that they want to receive 446 * messages from you. 447 * 448 * <p> 449 * <strong>Review</strong> 450 * 451 * <p> 452 * If your app requests this permission Facebook will have to review how your app uses it. 453 */ 454 @GraphAPI(since = "2.6") 455 PAGES_MESSAGING_PHONE_NUMBER("pages_messaging_phone_number", Category.MESSAGING), // 456 457 /** 458 * Provides the access to show the list of the Pages that you manage. 459 * 460 * <p> 461 * <strong>Review</strong> 462 * 463 * <p> 464 * If your app requests this permission Facebook will have to review how your app uses it. 465 */ 466 @GraphAPI(since = "2.5") 467 PAGES_SHOW_LIST("pages_show_list", Category.EVENTS_GROUPS_PAGES), // 468 469 /** 470 * The pages_user_gender permission allows your app to access a user's gender through the Page your app is connected 471 * to. 472 * 473 * Allowed Usage 474 * 475 * <ul> 476 * <li>Personalize experiences or recommendations based on gender.</li> 477 * <li>Use gendered language such as correct pronouns and titles.</li> 478 * </ul> 479 */ 480 PAGES_USER_GENDER("pages_user_gender", Category.EVENTS_GROUPS_PAGES), // 481 482 /** 483 * The pages_user_locale permission allows your to app to a user's locale through the Page your app is connected to. 484 * 485 * Allowed Usage 486 * 487 * <ul> 488 * <li>Personalize experiences based on the locale of a person by surfacing locale specific content.</li> 489 * <li>Send responses in the preferred language of the person.</li> 490 * <li>Display numbers, times, and dates correctly for the locale of the person.</li> 491 * </ul> 492 */ 493 PAGES_USER_LOCALE("pages_user_locale", Category.EVENTS_GROUPS_PAGES), // 494 495 /** 496 * The pages_user_timezone permission grants your app access to a user's time zone through the Page your app is 497 * connected to. 498 * 499 * Allowed Usage 500 * 501 * <ul> 502 * <li>Prevent messages from being sent at an inconvenient time.</li> 503 * <li>Send time sensitive content or recurring news at a specific time.</li> 504 * <li>Provide tailored content based on time.</li> 505 * <li>Send time appropriate greetings.</li> 506 * </ul> 507 */ 508 PAGES_USER_TIMEZONE("pages_user_timezone", Category.EVENTS_GROUPS_PAGES), // 509 510 /** 511 * The {@code pages_manage_posts} permission allows your app the ability to create, edit, and delete your Page posts. 512 * 513 * <p> 514 * If you have access to {@code pages_read_user_content}, you can also use {@code pages_manage_posts} to delete Page 515 * posts created by a User. 516 * 517 * <p> 518 * You can use this permission to create and delete content on the Page. 519 * 520 * <p> 521 * <strong>Review</strong> 522 * 523 * <p> 524 * If your app requests this permission Facebook will have to review how your app uses it. 525 * 526 * @since June 1, 2020 527 */ 528 PAGES_MANAGE_POSTS("pages_manage_posts", Category.EVENTS_GROUPS_PAGES), // 529 530 /** 531 * The {@code pages_manage_engagement} permission allows your app the ability to create, edit, and delete comments 532 * posted on the Page. 533 * 534 * <p> 535 * If you have access to {@code pages_read_user_content}, you can also use {@code pages_manage_engagement} to delete 536 * comments posted by other Pages. 537 * 538 * <p> 539 * It also allows your app the ability to create and delete your own Page's likes to Page content. 540 * 541 * <p> 542 * You can use this permission if you need it to help manage and moderate content on the Page. 543 * 544 * <p> 545 * <strong>Review</strong> 546 * 547 * <p> 548 * If your app requests this permission Facebook will have to review how your app uses it. 549 * 550 * @since June 1, 2020 551 */ 552 PAGES_MANAGE_ENGAGEMENT("pages_manage_engagement", Category.EVENTS_GROUPS_PAGES), // 553 554 /** 555 * Gives an app the ability to post content into a group on behalf of a user who has granted the app this permission. 556 * 557 * <p> 558 * <strong>Review</strong> 559 * 560 * <p> 561 * If your app requests this permission Facebook will have to review how your app uses it. 562 * 563 * @deprecated no longer supported with Graph API 19.0 or after 22. April 2024 564 */ 565 @GraphAPI(since = "3.0", until = "19.0") 566 @Deprecated 567 PUBLISH_TO_GROUPS("publish_to_groups", Category.EVENTS_GROUPS_PAGES), // 568 569 /** 570 * Grants an app permission to publish live videos to the app User's timeline. 571 * 572 * <p> 573 * <strong>Review</strong> 574 * 575 * <p> 576 * If your app requests this permission Facebook will have to review how your app uses it. 577 */ 578 @GraphAPI(since = "3.1") 579 PUBLISH_VIDEO("publish_video", Category.LIVE_VIDEO), // 580 581 /** 582 * Gives your app the ability to receive member-related data on group content when a member has granted the app 583 * permission to do so. 584 * 585 * <p> 586 * <strong>Review</strong> 587 * 588 * <p> 589 * If your app requests this permission Facebook will have to review how your app uses it. 590 * 591 * @deprecated no longer supported with Graph API 19.0 or after 22. April 2024 592 */ 593 @GraphAPI(since = "3.0", until = "19.0") 594 @Deprecated 595 GROUPS_ACCESS_MEMBER_INFO("groups_access_member_info", Category.EVENTS_GROUPS_PAGES), // 596 597 /** 598 * Provides read-only access to the Audience Network Insights data for Apps the person owns. 599 * 600 * <p> 601 * <strong>Review</strong> 602 * 603 * <p> 604 * If your app requests this permission Facebook will have to review how your app uses it. 605 */ 606 @GraphAPI(since = "2.4") 607 READ_AUDIENCE_NETWORK_INSIGHTS("read_audience_network_insights", Category.OTHER), // 608 609 /** 610 * The research_apis permission allows your app to access data on public Facebook Pages, Groups, and Events within the 611 * Facebook Open Research and Transparency Tool. 612 * 613 * Allowed Usage 614 * 615 * Utilize public Facebook data for academic research. 616 */ 617 RESEARCH_APIS("research_apis", Category.OTHER), // 618 619 /** 620 * 621 * <p> 622 * <strong>Review</strong> 623 * 624 * <p> 625 * If your app requests this permission Facebook will have to review how your app uses it. 626 */ 627 READ_INSIGHTS("read_insights", Category.OTHER), // 628 629 /** 630 * Provides the ability to set a person's attendee status on Facebook Events (eg attending, maybe, or declined). 631 * 632 * <p> 633 * This permission does not let you invite people to an event. 634 * 635 * <p> 636 * This permission does not let you update an event's details. 637 * 638 * <p> 639 * This permission does not let you create an event. There is no way to create an event via the API as of Graph API 640 * v2.0. 641 * 642 * <p> 643 * <strong>Review</strong> 644 * 645 * <p> 646 * If your app requests this permission Facebook will have to review how your app uses it. 647 */ 648 RSVP_EVENT("rsvp_event", Category.EVENTS_GROUPS_PAGES), // 649 650 /** 651 * Read and write with Business Management API 652 * 653 * <p> 654 * <strong>Review</strong> 655 * 656 * <p> 657 * If your app requests this permission Facebook will have to review how your app uses it. 658 */ 659 BUSINESS_MANAGEMENT("business_management", Category.EVENTS_GROUPS_PAGES), // 660 661 /** 662 * Grants your app the ability to create, read, update, and delete business owned product catalogs that the user is an 663 * admin of. This permission grants access to related endpoints. By default, your app may only access product catalogs 664 * that are owned by admins of the app when in developer mode. 665 * 666 * <p> 667 * <strong>Review</strong> 668 * 669 * <p> 670 * If your app requests this permission Facebook will have to review how your app uses it. 671 */ 672 CATALOG_MANAGEMENT("catalog_management", Category.EVENTS_GROUPS_PAGES), // 673 674 /** 675 * The gaming_user_locale permission allows your app to get a user's preferred language while the user plays a game on 676 * Facebook (for example, Instant Games or Cloud Gaming). 677 * 678 * Allowed Usage 679 * 680 * Display a game interface in the user's preferred language. 681 */ 682 GAMING_USER_LOCALE("gaming_user_locale", Category.EVENTS_GROUPS_PAGES), // 683 684 /** 685 * Grants your app permission to retrieve all the information captured within a 686 * <a href="https://developers.facebook.com/docs/marketing-api/guides/lead-ads/">lead.</a> 687 * 688 * <p> 689 * <strong>Review</strong> 690 * 691 * <p> 692 * If your app requests this permission Facebook will have to review how your app uses it. 693 */ 694 @GraphAPI(since = "3.1") 695 LEADS_RETRIEVAL("leads_retrieval", Category.EVENTS_GROUPS_PAGES), // 696 697 /** 698 * This allows you to send and receive messages through a Facebook Page out of the 24h window opened by a user action. 699 * 700 * <p> 701 * This permission cannot be used to send promotional or advertising content. 702 * 703 * <p> 704 * <strong>Review</strong> 705 * 706 * <p> 707 * If your app requests this permission Facebook will have to review how your app uses it. 708 */ 709 @GraphAPI(since = "2.6") 710 PAGES_MESSAGING_SUBSCRIPTIONS("pages_messaging_subscriptions", Category.MESSAGING), // 711 712 /** 713 * This allows you to charge users in Messenger conversations on behalf of pages. 714 * 715 * <p> 716 * Intended for tangible goods only, not virtual or subscriptions. 717 * 718 * <p> 719 * <strong>Review</strong> 720 * 721 * <p> 722 * If your app requests this permission Facebook will have to review how your app uses it. 723 */ 724 @GraphAPI(since = "2.6") 725 PAGES_MESSAGING_PAYMENTS("pages_messaging_payments", Category.MESSAGING), 726 727 // Instagram Platform permissions 728 729 /** 730 * Provides the ability to read Instagram accounts you have access to. 731 * 732 * <p> 733 * Please see <a href="https://developers.facebook.com/docs/instagram-api/getting-started">Instagram's Getting Started 734 * Guide</a> for details. 735 * 736 * <p> 737 * <strong>Review</strong> 738 * 739 * <p> 740 * If your app requests this permission Facebook will have to review how your app uses it. 741 */ 742 @GraphAPI(since = "2.5") 743 INSTAGRAM_BASIC("instagram_basic", Category.INSTAGRAM), 744 745 /** 746 * Provides the ability to read Instagram accounts you have access to. 747 * 748 * <p> 749 * Please see <a href="https://developers.facebook.com/docs/instagram-api/getting-started">Instagram's Getting Started 750 * Guide</a> for details. 751 * 752 * <p> 753 * <strong>Review</strong> 754 * 755 * <p> 756 * If your app requests this permission Facebook will have to review how your app uses it. 757 */ 758 @GraphAPI(since = "2.5") 759 INSTAGRAM_MANAGE_COMMENTS("instagram_manage_comments", Category.INSTAGRAM), 760 761 /** 762 * Provides the ability to read insights of Instagram account you have access to. 763 * 764 * <p> 765 * Please see <a href="https://developers.facebook.com/docs/instagram-api/getting-started">Instagram's Getting Started 766 * Guide</a> for details. 767 * 768 * <p> 769 * <strong>Review</strong> 770 * 771 * <p> 772 * If your app requests this permission Facebook will have to review how your app uses it. 773 */ 774 @GraphAPI(since = "2.5") 775 INSTAGRAM_MANAGE_INSIGHTS("instagram_manage_insights", Category.INSTAGRAM), 776 777 /** 778 * The instagram_manage_messages permission allows business users to read and respond to Instagram Direct messages. 779 * 780 * <p> 781 * Please see <a href="https://developers.facebook.com/docs/instagram-api/getting-started">Instagram's Getting Started 782 * Guide</a> for details. 783 * 784 * <p> 785 * <strong>Review</strong> 786 * 787 * <p> 788 * If your app requests this permission Facebook will have to review how your app uses it. 789 */ 790 INSTAGRAM_MANAGE_MESSAGES("instagram_manage_messages", Category.INSTAGRAM), 791 792 /** 793 * Provides the ability to publish content to Instagram account you have access to. 794 * 795 * <p> 796 * Please see <a href="https://developers.facebook.com/docs/instagram-api/reference/user/media_publish">Instagram's 797 * reference</a> for details. 798 * 799 * <p> 800 * <strong>Review</strong> 801 * 802 * <p> 803 * If your app requests this permission Facebook will have to review how your app uses it. 804 */ 805 @GraphAPI(since = "2.5") 806 INSTAGRAM_CONTENT_PUBLISH("instagram_content_publish", Category.INSTAGRAM), // 807 808 /** 809 * The instagram_graph_user_media permission allows your app to read the Media node, which represents an image, video, 810 * or album and the node’s edges. 811 * 812 * <p> 813 * <strong>Review</strong> 814 * 815 * <p> 816 * If your app requests this permission Facebook will have to review how your app uses it. 817 */ 818 INSTAGRAM_GRAPH_USER_MEDIA("instagram_graph_user_media", Category.INSTAGRAM), // 819 820 /** 821 * The instagram_graph_user_profile permission allows your app to read the app user's profile. 822 * 823 * <p> 824 * <strong>Review</strong> 825 * 826 * <p> 827 * If your app requests this permission Facebook will have to review how your app uses it. 828 */ 829 INSTAGRAM_GRAPH_USER_PROFILE("instagram_graph_user_profile", Category.INSTAGRAM), // 830 831 /** 832 * Provides the ability to read and/or manage WhatsApp business assets you own or have been granted access to by other 833 * businesses through this permission. 834 * 835 * These business assets include WhatsApp business accounts, phone numbers, and message templates. 836 * 837 * <p> 838 * Please see <a href= 839 * "https://developers.facebook.com/docs/facebook-login/permissions/#reference-whatsapp_business_management">Whatsapps's 840 * reference</a> for details. 841 * 842 * <p> 843 * <strong>Review</strong> 844 * 845 * <p> 846 * If your app requests this permission Facebook will have to review how your app uses it. 847 */ 848 WHATSAPP_BUSINESS_MANAGEMENT("whatsapp_business_management", Category.WHATSAPP), 849 850 /** 851 * The `whatsapp_business_messaging` permission allows an app to send WhatsApp messages to a specific phone number, 852 * upload and retrieve media from messages, manage and get WhatsApp business profile information, and to register 853 * those phone numbers with Meta. 854 * 855 * <p> 856 * Please see 857 * <a href= "https://developers.facebook.com/docs/permissions/reference/whatsapp_business_messaging">Whatsapps's 858 * reference</a> for details. 859 * 860 * <p> 861 * <strong>Review</strong> 862 * 863 * <p> 864 * If your app requests this permission Facebook will have to review how your app uses it. 865 */ 866 WHATSAPP_BUSINESS_MESSAGING("whatsapp_business_messaging", Category.WHATSAPP), 867 868 /** 869 * Required for making any calls to all Threads API endpoints 870 * 871 * <p> 872 * <strong>Review</strong> 873 * 874 * <p> 875 * If your app requests this permission Facebook will have to review how your app uses it. 876 */ 877 THREADS_BASIC("threads_basic", Category.THREADS), 878 879 /** 880 * Required for Threads publishing endpoints only 881 * 882 * <p> 883 * <strong>Review</strong> 884 * 885 * <p> 886 * If your app requests this permission Facebook will have to review how your app uses it. 887 */ 888 THREADS_CONTENT_PUBLISH("threads_content_publish", Category.THREADS), 889 890 /** 891 * Required for making GET calls to insights endpoints 892 * 893 * <p> 894 * <strong>Review</strong> 895 * 896 * <p> 897 * If your app requests this permission Facebook will have to review how your app uses it. 898 */ 899 THREADS_MANAGE_INSIGHTS("threads_manage_insights", Category.THREADS), 900 901 /** 902 * Required for making POST calls to reply endpoints 903 * 904 * <p> 905 * <strong>Review</strong> 906 * 907 * <p> 908 * If your app requests this permission Facebook will have to review how your app uses it. 909 */ 910 THREADS_MANAGE_REPLIES("threads_manage_replies", Category.THREADS), 911 912 /** 913 * Required for making GET calls to reply endpoints 914 * 915 * <p> 916 * <strong>Review</strong> 917 * 918 * <p> 919 * If your app requests this permission Facebook will have to review how your app uses it. 920 */ 921 THREADS_READ_REPLIES("threads_read_replies", Category.THREADS); 922 923 private final String permissionString; 924 925 private final Category category; 926 927 FacebookPermissions(String facebookPermissionString, Category category) { 928 this.permissionString = facebookPermissionString; 929 this.category = category; 930 } 931 932 public String getPermissionString() { 933 return this.permissionString; 934 } 935 936 public Category getCategory() { 937 return this.category; 938 } 939 940 public enum Category { 941 PUBLIC, USER_DATA, EVENTS_GROUPS_PAGES, OTHER, MESSAGING, INSTAGRAM, LIVE_VIDEO, WHATSAPP, THREADS 942 } 943}