Data.defineAssociation
From Facebook Developers Wiki
An object association is a directional relationship between two object identifiers. For example,
- Application Installation: user id => installed application ids
- Marriage: husband => wife
- Friendship: user id => friend user id
- Gift: giver => receiver
Each association has at least 3 names that are required to describe it:
- name of the association itself: "installation", "marriage", "friendship", "gift".
- alias1, name of the first object identifier: "user id", "husband", "giver".
- alias2, name of the second object identifier: "application id", "wife", "friend user id", "receiver".
For some associations, we also need reverse direction for a lookup by the second object identifier. For examples, in "marriage" case, not only may we need to look up wife ids by husband ids, but we may also need to look up husband ids by wife ids. We call this a two-way association. Since "husband to wife" is not the same as "wife to husband", we call this a two-way asymmetric association.
In some other two-way associations, backward association has the same meaning of forward association. For example, in "friendship", if "A is B's friend" then "B is A's friend" as well. We call these types of two-way associations symmetric. For a symmetric association, when "A to B" is added, we also add "B to A", so that a reverse lookup can find out exactly the same information.
Contents |
[edit] Parameters
| Type | Name | Description |
|---|---|---|
| string | api_key | The application key associated with the calling application. |
| string | session_key | The session key of the logged in user. |
| float | call_id | The request's sequence number. Each successive call for any session must use a sequence number greater than the last. We suggest using the current time in milliseconds, such as PHP's microtime(true) function. |
| string | sig | An MD5 hash of the current request and your secret key, as described in the authentication guide. |
| string | v | This must be set to 1.0 to use this version of the API. |
| string | format | Optional - desired response format. Either "XML" (default) or "JSON". |
| string | callback | Optional - wrap the response inside a function call. This is primarily to enable cross-domain javascript requests using the <script> tag, sometimes known as "JSONP". This works with both XML and JSON. |
| string | name | Name of forward association to create. This name needs to be unique among all object types and associations defined for this application. This name also needs to be a valid identifier, which is no longer than 32 characters, starting with a letter (a-z) and consisting of only small letters (a-z), numbers (0-9) and/or underscores. |
| integer | assoc_type | Type of this association:
|
| complex | assoc_info1 | Describes object identifier 1 in an association. This is a data structure that has:
|
| complex | assoc_info2 | Describes object identifier 2 in an association. This is a data structure that has:
|
| string | inverse | Optional - name of backward association, if it is two-way asymmetric. This name needs to be unique among all object types and associations defined for this application. This name also needs to be a valid identifier, which is no longer than 32 characters, starting with a letter (a-z) and consisting of only small letters (a-z), numbers (0-9) and/or underscores. |
[edit] Return Value
(none)
[edit] PHP Client Coding Examples
global $facebook;
$obj1 = array('alias' => 'user');
$obj2 = array('alias' => 'category',
'object_type' => 'category');
$result = $facebook->api_client->data_defineAssociation('selected_category', 1, $obj1, $obj2);
[edit] FQL Equivalent
(none)
[edit] Error codes
| Code | Description |
|---|---|
| 1 | An unknown error occurred. Please resubmit the request. |
| 2 | The service is not available at this time. |
| 4 | The application has reached the maximum number of requests allowed. More requests are allowed once the time window has completed. |
| 5 | The request came from a remote address not allowed by this application. |
| 100 | One of the parameters specified was missing or invalid. |
| 101 | The api key submitted is not associated with any known application. |
| 102 | The session key was improperly submitted or has reached its timeout. Direct the user to log in again to obtain another key. |
| 103 | The submitted call_id was not greater than the previous call_id for this session. |
| 104 | Incorrect signature. |
| 200 | Permission denied. Calling application or user doesn't have enough permissions to perform the action. |
| 800 | Internal error. Please report this to Facebook when getting this error. |
| 801 | Invalid operation error. This operation is not allowed. |
| 802 | Quota exceeded. Certain maximum number allocated for an application or a user is exceeded. |
| 804 | Object already exists on server. |
| 805 | A temporary database failure happened. Usually this can be corrected by a re-try. |
