All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.facebook.api.Permission Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2007, BigTribe Corporation. All rights reserved.
 *
 * This software is an unpublished work subject to a confidentiality agreement
 * and protected by copyright and trade secret law.  Unauthorized copying,
 * redistribution or other use of this work is prohibited.  All copies must
 * retain this copyright notice.  Any use or exploitation of this work without
 * authorization could subject the perpetrator to criminal and civil liability.
 * 
 * Redistribution and use in source and binary forms, with or without        
 * modification, are permitted provided that the following conditions        
 * are met:                                                                  
 *                                                                           
 * 1. Redistributions of source code must retain the above copyright         
 *    notice, this list of conditions and the following disclaimer.          
 * 2. Redistributions in binary form must reproduce the above copyright      
 *    notice, this list of conditions and the following disclaimer in the    
 *    documentation and/or other materials provided with the distribution.   
 *
 * The information in this software is subject to change without notice
 * and should not be construed as a commitment by BigTribe Corporation.
 *
 * The above copyright notice does not indicate actual or intended publication
 * of this source code.
 *
 * $Id: bigtribetemplates.xml 5524 2006-04-06 09:40:52 -0700 (Thu, 06 Apr 2006) greening $
 */
package com.facebook.api;


/**
 * Enum for managing the different permission-types used by Facebook. These are opt-in permissions that the user must explicitly grant, and can only be requested one at a
 * time. To request that a user grant you a permission, direct them to a URL of the form:
 * 
 * http://www.facebook.com/authorize.php?api_key=[YOUR_API_KEY]&v=1.0&ext_perm=[PERMISSION NAME]
 * 
 * You can query to see if the user has granted your application a given permission using the 'users.hasAppPermission' API call.
 */
public enum Permission {
	/**
	 * Permission to send SMS messages to a user
	 */
	SMS_SEND("sms"),
	/**
	 * Permission to update a user's status message
	 */
	STATUS_UPDATE("status_update"),
	/**
	 * Permission to create marketplac elistings for the user
	 */
	MARKETPLACE_CREATE("create_listing"),
	/**
	 * Enahnced photo-uploading permissions
	 */
	PHOTO_UPLOAD("photo_upload");

	/**
	 * The unchanging part of the URL to use when authorizing permissions.
	 */
	public static final String PERM_AUTHORIZE_ADDR = "http://www.facebook.com/authorize.php";

	private String name;

	private Permission( String name ) {
		this.name = name;
	}

	/**
	 * Gets the name by which Facebook refers to this permission. The name is what is sent in API calls and other requests to Facebook to specify the desired premission.
	 * 
	 * @return the Facebook name given to this permission.
	 */
	public String getName() {
		return name;
	}

	/**
	 * Compute the URL to which to send the user to request the extended permission.
	 * 
	 * @param apiKey
	 *            your application's API key.
	 * @param permission
	 *            the permission you want the grant URL for.
	 * 
	 * @return a String that specifies the URL to direct users to in order to grant this permission to the application.
	 */
	public static String authorizationUrl( String apiKey, Permission permission ) {
		return authorizationUrl( apiKey, permission.getName() );
	}

	private static String authorizationUrl( String apiKey, CharSequence permission ) {
		return String.format( "%s?api_key=%s&v=1.0&ext_perm=%s", PERM_AUTHORIZE_ADDR, apiKey, permission );
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy