2009-10-10 4 views
0

Je continue à obtenir l'erreur suivante lorsque je tente d'invoquer l'API Facebook REST Appel:Connect.registerUsers - Besoin d'aider la création de tableau pour les comptes param

Connect.registerUsers

Code d'erreur: 100 - comptes param doit être un réseau

réponse basée JSON (de Facebook):

{"error_code":100,"error_msg":"param accounts must be an array.","request_args": 
[{"key":"accounts","value":"{email_hash:5232156322_55ddgvc3db5ddcf218049dd564da2x06}"}, 
{"key":"api_key","value":"23b2c4c6a23445fbffssf8aab96a5e5"}, 
{"key":"format","value":"JSON"},{"key":"method","value":"Connect.registerUsers"},{"key":"sig","value":"3sd54153a31382fa6e72eecf3c57d7c9"},{"key":"v","value":"1.0"}],"message":"Unknown exception","code":0} 

Je mis en place le code Java pour appeler le point final REST en utilisant HttpClient comme ceci:

String API_KEY = "23b2c4c6a23445fbffssf8aab96a5e5"; 
String toConnectRegisterUsersSignature = 
    "accounts=" 
    + "{email_hash:" + emailHash + "}" 
    + "api_key=" + API_KEY 
    + "format=JSON" 
    + "method=Connect.registerUsers" 
    + "v=1.0" 
    + "0c786155bd3cxe8228d924542da5gf2"; 

String connectRegisterUsersSignature = SimpleMd5.MD5(toConnectRegisterUsersSignature); 

NameValuePair[] connectRegisterUsersParameters = 
{ 
    new NameValuePair("accounts", "{email_hash:" + emailHash + "}"), 
    new NameValuePair("api_key", API_KEY), 
    new NameValuePair("format", "JSON"), 
    new NameValuePair("method", "Connect.registerUsers"), 
    new NameValuePair("sig", connectRegisterUsersSignature), 
    new NameValuePair("v", "1.0") 
}; 

Essayé les combinaisons suivantes et je reçois toujours la même erreur!

Signature: "accounts=" + "[email_hash=" + emailHash + "]" 
new NameValuePair("accounts", "[email_hash=" + emailHash + "]") 

Signature: "accounts=" + "email_hash[" + emailHash + "]" 
new NameValuePair("accounts", "email_hash[" + emailHash + "]") 

Signature: "accounts=" + "email_hash(" + emailHash + ")" 
new NameValuePair("accounts", "email_hash(" + emailHash + ")") 

Signature: "accounts=" + "[email_hash=" + emailHash + "]" 
new NameValuePair("accounts", "[email_hash=" + emailHash + "]") 

Signature: "accounts=" + "email_hash=" + emailHash 
new NameValuePair("accounts", "email_hash=" + emailHash) 

Signature: "accounts=" + "[{email_hash:" + emailHash + "}]" 
new NameValuePair("accounts", "[{email_hash:" + emailHash + "}]"), 

Est-ce que quelqu'un sait comment construire ce tableau que la réponse demande?

Bonne programmation et merci d'avoir pris le temps de lire ceci.

Répondre

0

Je ne suis pas sûr combien d'aide ce sera, mais les œuvres suivantes pour moi en Python à l'aide de l'emballage PyFacebook (désolé, pas familier avec la méthode Java):

hashed_email = facebook.hash_email('[email protected]') 
# >>> hashed_email 
# >>> '4228600737_c96da02bba97aedfd26136e980ae3761' 
regaccounts = [{"email_hash": hashed_email}] 

facebook.connect.registerUsers(regaccounts) 

L'enveloppe PyFacebook envoie l'api_key (qui, incidemment, est le seul autre required parameter)

PS Si c'est une consolation, votre question m'a fait réaliser où je me suis trompé dans un similar case!

Questions connexes