Appendix A. Frequently Asked Questions

1. How do I calculate the protocol itemid to get the “URL” itemid?
2. What are the limitations on post and user information data?
3. I just wrote a client for LiveJournal. How do I go about getting it on the Download page?
4. Why doesn't my client show up on my user info page?
5. Is there anything I need to check for in my client or script that is usually missed?
6. Why do I get a “not a valid UTF-8 stream” or “Protocol version mismatch” error?
7. Why does the checkfriends mode seem to behave strangely?
8. Why might my challenge-response authentication fail?
9. Is there a client API to interact with the Memories feature?
10. Do the client APIs allow SSL authentication?
11. If I should avoid “screen-scraping” user pages then what are the site-friendly alternatives?
12. Where can I find information on the FotoBilder client protocol?

1.

How do I calculate the protocol itemid to get the “URL” itemid?

For protocol methods that return an itemid, there is another variable returned called anum. To calculate the public URL itemid, use the following formula: (itemid * 256) + anum

2.

What are the limitations on post and user information data?

To help calculate portions of your client, here are the upper limits of client affected data:

  • Posts: 65,535 bytes
  • Entry Properties (Currents, such as “Current Music”): 255 bytes or 100 characters
  • Entry Subjects: 255 bytes or 100 characters
  • User Picture Keywords: 40 characters
  • Usernames: 15 characters
  • Name: 50 characters
  • Webpage URL: 255 bytes
  • Webpage Name: 255 bytes
  • Entry dates (Unix epoch): 1970-01-01 – 2037-12-31

3.

I just wrote a client for LiveJournal. How do I go about getting it on the Download page?

The Downloads page at LiveJournal.com currently requires manual updates, which happen infrequently. Due to the large userbase which uses clients offered up via the Downloads page, we prefer to only add well-established clients to the page.

All too often, someone will code a client and then abandon it after a certain amount of time. If you feel that you are willing and able to commit to maintaining and providing support for a client, then by all means produce one and announce it on lj_nifty[o]. We recommend you create a community for the users of your client, so you can announce new versions and provide a forum for troubleshooting and user support. Once your client has matured, it will likely be included on the Downloads page. If your program has reached a point where you feel it should be included in the page and it has not been yet, feel free to drop a post to the lj_dev[o] community asking why.

Client Listing Guidelines for the Download a Client[o] page

  • As a minimum, clients must support the basic features of LiveJournal, such as logging in, posting new entries, editing old entries, history views, etc.
  • Client must be mature and well-established before being listed. Having minor bugs is okay, but we don't want to link to clients that have the potential to mess up an account.
  • Client must be free to use. You're welcome to create and maintain a client that is not free/open, we just don't want to provide free advertising for such a client.
  • Client must be originally written for LiveJournal. We support the Blogger and Atom APIs, and we encourage interoperational clients, but we don't want to get in the habit of listing clients for competitor services.

4.

Why doesn't my client show up on my user info page?

Client logging was disabled because its current implementation was consuming far too many database resources. It may reappear in the future, if a more efficient design is coded and tested.

5.

Is there anything I need to check for in my client or script that is usually missed?

All bots/scripts need to have a well formed user-agent. That way site administrators know what is causing problems and can contact the author in case they need them to make some changes, or if they have cause to block them. Also, please make sure you specify a version.

6.

Why do I get a “not a valid UTF-8 stream” or “Protocol version mismatch” error?

If you send non-ASCII data (like international characters in an entry), you need to use Unicode (UTF-8) and set ver=1 to be recognised as a Unicode-capable client. You cannot post an entry to a non-person account (a community) with international or special characters at all, unless you set ver=1.

7.

Why does the checkfriends mode seem to behave strangely?

On LiveJournal.com the return value for interval is either 120 seconds, or 36000 seconds (ten hours). The value of 120 seconds is returned if the user has a paid account; it is effectively “disabled” for free (non-paid) users. This was introduced because continually-polling broken clients placed unnecessary strain on the servers.

8.

Why might my challenge-response authentication fail?

Ensure all MD5 hashes you generate and use are lowercase. That's the primary cause of verification failures. Unix does lowercase, many Windows® libraries do uppercase.

9.

Is there a client API to interact with the Memories feature?

No, there is no Memories API in place.

10.

Do the client APIs allow SSL authentication?

SSL is not supported, but challenge-response is available so there is less need.

11.

If I should avoid “screen-scraping” user pages then what are the site-friendly alternatives?

A variety of user content in machine-readable formats is available. For details see the chapter on machine-readable userdata.

12.

Where can I find information on the FotoBilder client protocol?

For information on developing clients for FotoBilder installations (like ScrapBook on LiveJournal.com), please see the FotoBilder Protocol Documentation[o].